From 321f0d788cafab71fbc39d595f74d7498add64ea Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 6 Aug 2001 08:09:51 +0000
Subject: [PATCH] Suppressed extern ActualView

---
 Common/Views.cpp             |  79 ++++++++++++++-
 Common/Views.h               |   4 +-
 Parser/Gmsh.tab.cpp          | 180 +++++++++++++++++------------------
 Parser/Gmsh.y                | 180 +++++++++++++++++------------------
 Parser/Gmsh.yy.cpp           |   4 +-
 Plugin/CutMap.cpp            |   4 +-
 Plugin/CutPlane.cpp          |   4 +-
 Plugin/CutSphere.cpp         |   4 +-
 Plugin/LevelsetPlugin.cpp    |  34 ++++---
 Plugin/Makefile              |   9 +-
 Plugin/Plugin.cpp            |  17 +++-
 Plugin/ideas_for_new_plugins |  11 ---
 12 files changed, 302 insertions(+), 228 deletions(-)

diff --git a/Common/Views.cpp b/Common/Views.cpp
index 484e4cda87..83ecb2ae12 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-// $Id: Views.cpp,v 1.47 2001-08-04 03:35:32 geuzaine Exp $
+// $Id: Views.cpp,v 1.48 2001-08-06 08:09:51 geuzaine Exp $
 
 #include <set>
 #include "Gmsh.h"
@@ -10,11 +10,11 @@
 // this static stuff should be removed
 int         Post_ViewForceNumber = 0;
 List_T     *Post_ViewList = NULL;
-Post_View  *Post_ViewReference = NULL, *ActualView;
-
+Post_View  *Post_ViewReference = NULL;
 
 extern Context_T   CTX ;
 
+static Post_View *ActualView;
 static int  ActualViewNum=0, ActualViewIndex=0;
 static int  NbPoints, NbLines, NbTriangles, NbTetrahedra;
 
@@ -30,7 +30,7 @@ int fcmpPostViewDuplicateOf(const void *v1, const void *v2){
   return (((Post_View *)v1)->DuplicateOf - ((Post_View *)v2)->DuplicateOf);
 }
 
-void BeginView(int allocate){
+Post_View * BeginView(int allocate){
   Post_View v;
   int i;
 
@@ -103,6 +103,7 @@ void BeginView(int allocate){
     ActualView->BBox[2*i+1] = -1.e200;
   }
 
+  return ActualView;
 }
 
 void Stat_ScalarSimplex(int nbnod, int N, double *X, double *Y, double *Z, double *V){
@@ -870,3 +871,73 @@ bool Post_View :: get_normal(double x, double y, double z,
   return true;
 }
 
+/* ------------------------------------------------------------------------ */
+/*  T r a n s f o r m a t i o n                                             */
+/* ------------------------------------------------------------------------ */
+
+void transform(double mat[3][3], double v[3],
+	       double *x, double *y, double *z){
+  *x = mat[0][0]*v[0] + mat[0][1]*v[1] + mat[0][2]*v[2];
+  *y = mat[1][0]*v[0] + mat[1][1]*v[1] + mat[1][2]*v[2];
+  *z = mat[2][0]*v[0] + mat[2][1]*v[1] + mat[2][2]*v[2];
+}
+
+void transform_list(List_T *V ,
+		    int NbTimeStep,
+		    int nbvert,
+		    int nb,
+		    double mat[3][3]){
+  double *x,*y,*z, v[3];
+  int i, j;
+
+  for(i = 0 ; i < List_Nbr(V) ; i+=nb){
+    x = (double*)List_Pointer_Fast(V,i);
+    y = (double*)List_Pointer_Fast(V,i+nbvert);
+    z = (double*)List_Pointer_Fast(V,i+2*nbvert);
+    for(j=0; j<nbvert; j++){
+      v[0] = x[j];
+      v[1] = y[j];
+      v[2] = z[j];
+      transform(mat,v,&x[j],&y[j],&z[j]);
+    }
+  }
+}
+
+void Post_View :: transform (double mat[3][3]){
+  int nb;
+
+  if(NbSP){
+    nb = List_Nbr(SP) / NbSP ;
+    transform_list(SP, NbTimeStep, 1, nb, mat);
+  }
+  if(NbSL){
+    nb = List_Nbr(SL) / NbSL ;
+    transform_list(SL, NbTimeStep, 2, nb, mat);
+  }
+  if(NbST){
+    nb = List_Nbr(ST) / NbST ;
+    transform_list(ST, NbTimeStep, 3, nb, mat);
+  }
+  if(NbSS){
+    nb = List_Nbr(SS) / NbSS ;
+    transform_list(SS, NbTimeStep, 4, nb, mat);
+  }
+
+
+  if(NbVP){
+    nb = List_Nbr(VP) / NbVP ;
+    transform_list(VP, NbTimeStep, 1, nb, mat);
+  }
+  if(NbVL){
+    nb = List_Nbr(VL) / NbVL ;
+    transform_list(VL, NbTimeStep, 2, nb, mat);
+  }
+  if(NbVT){
+    nb = List_Nbr(VT) / NbVT ;
+    transform_list(VT, NbTimeStep, 3, nb, mat);
+  }
+  if(NbVS){
+    nb = List_Nbr(VS) / NbVS ;
+    transform_list(VS, NbTimeStep, 4, nb, mat);
+  }
+}
diff --git a/Common/Views.h b/Common/Views.h
index 45cd96db2c..6d99e8b209 100644
--- a/Common/Views.h
+++ b/Common/Views.h
@@ -53,6 +53,8 @@ class Post_View{
 		  double nx, double ny, double nz);
   bool get_normal(double x, double y, double z, 
 		  double &nx, double &ny, double &nz);
+  // transform the view
+  void transform(double mat[3][3]);
 };
 
 // The static list with pointers to all views
@@ -98,7 +100,7 @@ extern int        Post_ViewForceNumber, Post_ViewComputeBBox;
 int fcmpPostViewNum(const void *v1, const void *v2);
 int fcmpPostViewDuplicateOf(const void *v1, const void *v2);
 
-void BeginView (int alloc);
+Post_View * BeginView (int alloc);
 void EndView (int AddInUI, char *FileName, char *Name);
 void FreeView(Post_View *v);
 bool FreeView(int);
diff --git a/Parser/Gmsh.tab.cpp b/Parser/Gmsh.tab.cpp
index 6904c08af7..80fae95bc5 100644
--- a/Parser/Gmsh.tab.cpp
+++ b/Parser/Gmsh.tab.cpp
@@ -172,7 +172,7 @@
 #line 1 "Gmsh.y"
  
 
-// $Id: Gmsh.tab.cpp,v 1.100 2001-08-01 14:30:40 geuzaine Exp $
+// $Id: Gmsh.tab.cpp,v 1.101 2001-08-06 08:09:51 geuzaine Exp $
 
   //
   // Generaliser sprintf avec des chaines de caracteres
@@ -211,7 +211,6 @@ List_T *Symbol_L=NULL;
 
 extern Context_T  CTX;
 extern Mesh      *THEM;
-extern Post_View *ActualView;
 
 static FILE          *yyinTab[MAX_OPEN_FILES];
 static int            yylinenoTab[MAX_OPEN_FILES];
@@ -235,6 +234,7 @@ static StringXColor   *pColCat;
 static double         (*pNumOpt)(int num, int action, double value);
 static char*          (*pStrOpt)(int num, int action, char *value);
 static unsigned int   (*pColOpt)(int num, int action, unsigned int value);
+static Post_View      *View;
 
 char *strsave(char *ptr);
 void  yyerror (char *s);
@@ -3298,286 +3298,286 @@ case 70:
 case 71:
 #line 453 "Gmsh.y"
 {
-      BeginView(1); 
+      View = BeginView(1); 
     ;
     break;}
 case 84:
 #line 472 "Gmsh.y"
-{ List_Add(ActualView->SP, &yyvsp[0].d) ; ;
+{ List_Add(View->SP, &yyvsp[0].d) ; ;
     break;}
 case 85:
 #line 474 "Gmsh.y"
-{ List_Add(ActualView->SP, &yyvsp[0].d) ; ;
+{ List_Add(View->SP, &yyvsp[0].d) ; ;
     break;}
 case 86:
 #line 479 "Gmsh.y"
 { 
-      List_Add(ActualView->SP, &yyvsp[-5].d); List_Add(ActualView->SP, &yyvsp[-3].d);
-      List_Add(ActualView->SP, &yyvsp[-1].d);
+      List_Add(View->SP, &yyvsp[-5].d); List_Add(View->SP, &yyvsp[-3].d);
+      List_Add(View->SP, &yyvsp[-1].d);
     ;
     break;}
 case 87:
 #line 484 "Gmsh.y"
 {
-      ActualView->NbSP++ ;
+      View->NbSP++ ;
     ;
     break;}
 case 88:
 #line 491 "Gmsh.y"
-{ List_Add(ActualView->VP, &yyvsp[0].d) ; ;
+{ List_Add(View->VP, &yyvsp[0].d) ; ;
     break;}
 case 89:
 #line 493 "Gmsh.y"
-{ List_Add(ActualView->VP, &yyvsp[0].d) ; ;
+{ List_Add(View->VP, &yyvsp[0].d) ; ;
     break;}
 case 90:
 #line 498 "Gmsh.y"
 { 
-      List_Add(ActualView->VP, &yyvsp[-5].d); List_Add(ActualView->VP, &yyvsp[-3].d);
-      List_Add(ActualView->VP, &yyvsp[-1].d); 
+      List_Add(View->VP, &yyvsp[-5].d); List_Add(View->VP, &yyvsp[-3].d);
+      List_Add(View->VP, &yyvsp[-1].d); 
     ;
     break;}
 case 91:
 #line 503 "Gmsh.y"
 {
-      ActualView->NbVP++ ;
+      View->NbVP++ ;
     ;
     break;}
 case 92:
 #line 510 "Gmsh.y"
-{ List_Add(ActualView->TP, &yyvsp[0].d) ; ;
+{ List_Add(View->TP, &yyvsp[0].d) ; ;
     break;}
 case 93:
 #line 512 "Gmsh.y"
-{ List_Add(ActualView->TP, &yyvsp[0].d) ; ;
+{ List_Add(View->TP, &yyvsp[0].d) ; ;
     break;}
 case 94:
 #line 517 "Gmsh.y"
 { 
-      List_Add(ActualView->TP, &yyvsp[-5].d); List_Add(ActualView->TP, &yyvsp[-3].d);
-      List_Add(ActualView->TP, &yyvsp[-1].d);
+      List_Add(View->TP, &yyvsp[-5].d); List_Add(View->TP, &yyvsp[-3].d);
+      List_Add(View->TP, &yyvsp[-1].d);
     ;
     break;}
 case 95:
 #line 522 "Gmsh.y"
 {
-      ActualView->NbTP++ ;
+      View->NbTP++ ;
     ;
     break;}
 case 96:
 #line 529 "Gmsh.y"
-{ List_Add(ActualView->SL, &yyvsp[0].d) ; ;
+{ List_Add(View->SL, &yyvsp[0].d) ; ;
     break;}
 case 97:
 #line 531 "Gmsh.y"
-{ List_Add(ActualView->SL, &yyvsp[0].d) ; ;
+{ List_Add(View->SL, &yyvsp[0].d) ; ;
     break;}
 case 98:
 #line 537 "Gmsh.y"
 { 
-      List_Add(ActualView->SL, &yyvsp[-11].d); List_Add(ActualView->SL, &yyvsp[-5].d);
-      List_Add(ActualView->SL, &yyvsp[-9].d); List_Add(ActualView->SL, &yyvsp[-3].d);
-      List_Add(ActualView->SL, &yyvsp[-7].d); List_Add(ActualView->SL, &yyvsp[-1].d);
+      List_Add(View->SL, &yyvsp[-11].d); List_Add(View->SL, &yyvsp[-5].d);
+      List_Add(View->SL, &yyvsp[-9].d); List_Add(View->SL, &yyvsp[-3].d);
+      List_Add(View->SL, &yyvsp[-7].d); List_Add(View->SL, &yyvsp[-1].d);
     ;
     break;}
 case 99:
 #line 543 "Gmsh.y"
 {
-      ActualView->NbSL++ ;
+      View->NbSL++ ;
     ;
     break;}
 case 100:
 #line 550 "Gmsh.y"
-{ List_Add(ActualView->VL, &yyvsp[0].d) ; ;
+{ List_Add(View->VL, &yyvsp[0].d) ; ;
     break;}
 case 101:
 #line 552 "Gmsh.y"
-{ List_Add(ActualView->VL, &yyvsp[0].d) ; ;
+{ List_Add(View->VL, &yyvsp[0].d) ; ;
     break;}
 case 102:
 #line 558 "Gmsh.y"
 { 
-      List_Add(ActualView->VL, &yyvsp[-11].d); List_Add(ActualView->VL, &yyvsp[-5].d);
-      List_Add(ActualView->VL, &yyvsp[-9].d); List_Add(ActualView->VL, &yyvsp[-3].d);
-      List_Add(ActualView->VL, &yyvsp[-7].d); List_Add(ActualView->VL, &yyvsp[-1].d);
+      List_Add(View->VL, &yyvsp[-11].d); List_Add(View->VL, &yyvsp[-5].d);
+      List_Add(View->VL, &yyvsp[-9].d); List_Add(View->VL, &yyvsp[-3].d);
+      List_Add(View->VL, &yyvsp[-7].d); List_Add(View->VL, &yyvsp[-1].d);
     ;
     break;}
 case 103:
 #line 564 "Gmsh.y"
 {
-      ActualView->NbVL++ ;
+      View->NbVL++ ;
     ;
     break;}
 case 104:
 #line 571 "Gmsh.y"
-{ List_Add(ActualView->TL, &yyvsp[0].d) ; ;
+{ List_Add(View->TL, &yyvsp[0].d) ; ;
     break;}
 case 105:
 #line 573 "Gmsh.y"
-{ List_Add(ActualView->TL, &yyvsp[0].d) ; ;
+{ List_Add(View->TL, &yyvsp[0].d) ; ;
     break;}
 case 106:
 #line 579 "Gmsh.y"
 { 
-      List_Add(ActualView->TL, &yyvsp[-11].d); List_Add(ActualView->TL, &yyvsp[-5].d);
-      List_Add(ActualView->TL, &yyvsp[-9].d); List_Add(ActualView->TL, &yyvsp[-3].d);
-      List_Add(ActualView->TL, &yyvsp[-7].d); List_Add(ActualView->TL, &yyvsp[-1].d);
+      List_Add(View->TL, &yyvsp[-11].d); List_Add(View->TL, &yyvsp[-5].d);
+      List_Add(View->TL, &yyvsp[-9].d); List_Add(View->TL, &yyvsp[-3].d);
+      List_Add(View->TL, &yyvsp[-7].d); List_Add(View->TL, &yyvsp[-1].d);
     ;
     break;}
 case 107:
 #line 585 "Gmsh.y"
 {
-      ActualView->NbTL++ ;
+      View->NbTL++ ;
     ;
     break;}
 case 108:
 #line 592 "Gmsh.y"
-{ List_Add(ActualView->ST, &yyvsp[0].d) ; ;
+{ List_Add(View->ST, &yyvsp[0].d) ; ;
     break;}
 case 109:
 #line 594 "Gmsh.y"
-{ List_Add(ActualView->ST, &yyvsp[0].d) ; ;
+{ List_Add(View->ST, &yyvsp[0].d) ; ;
     break;}
 case 110:
 #line 601 "Gmsh.y"
 { 
-      List_Add(ActualView->ST, &yyvsp[-17].d); List_Add(ActualView->ST, &yyvsp[-11].d);
-      List_Add(ActualView->ST, &yyvsp[-5].d);
-      List_Add(ActualView->ST, &yyvsp[-15].d); List_Add(ActualView->ST, &yyvsp[-9].d);
-      List_Add(ActualView->ST, &yyvsp[-3].d);
-      List_Add(ActualView->ST, &yyvsp[-13].d); List_Add(ActualView->ST, &yyvsp[-7].d);
-      List_Add(ActualView->ST, &yyvsp[-1].d);
+      List_Add(View->ST, &yyvsp[-17].d); List_Add(View->ST, &yyvsp[-11].d);
+      List_Add(View->ST, &yyvsp[-5].d);
+      List_Add(View->ST, &yyvsp[-15].d); List_Add(View->ST, &yyvsp[-9].d);
+      List_Add(View->ST, &yyvsp[-3].d);
+      List_Add(View->ST, &yyvsp[-13].d); List_Add(View->ST, &yyvsp[-7].d);
+      List_Add(View->ST, &yyvsp[-1].d);
     ;
     break;}
 case 111:
 #line 610 "Gmsh.y"
 {
-      ActualView->NbST++ ;
+      View->NbST++ ;
     ;
     break;}
 case 112:
 #line 617 "Gmsh.y"
-{ List_Add(ActualView->VT, &yyvsp[0].d) ; ;
+{ List_Add(View->VT, &yyvsp[0].d) ; ;
     break;}
 case 113:
 #line 619 "Gmsh.y"
-{ List_Add(ActualView->VT, &yyvsp[0].d) ; ;
+{ List_Add(View->VT, &yyvsp[0].d) ; ;
     break;}
 case 114:
 #line 626 "Gmsh.y"
 { 
-      List_Add(ActualView->VT, &yyvsp[-17].d); List_Add(ActualView->VT, &yyvsp[-11].d);
-      List_Add(ActualView->VT, &yyvsp[-5].d);
-      List_Add(ActualView->VT, &yyvsp[-15].d); List_Add(ActualView->VT, &yyvsp[-9].d);
-      List_Add(ActualView->VT, &yyvsp[-3].d);
-      List_Add(ActualView->VT, &yyvsp[-13].d); List_Add(ActualView->VT, &yyvsp[-7].d);
-      List_Add(ActualView->VT, &yyvsp[-1].d);
+      List_Add(View->VT, &yyvsp[-17].d); List_Add(View->VT, &yyvsp[-11].d);
+      List_Add(View->VT, &yyvsp[-5].d);
+      List_Add(View->VT, &yyvsp[-15].d); List_Add(View->VT, &yyvsp[-9].d);
+      List_Add(View->VT, &yyvsp[-3].d);
+      List_Add(View->VT, &yyvsp[-13].d); List_Add(View->VT, &yyvsp[-7].d);
+      List_Add(View->VT, &yyvsp[-1].d);
     ;
     break;}
 case 115:
 #line 635 "Gmsh.y"
 {
-      ActualView->NbVT++ ;
+      View->NbVT++ ;
     ;
     break;}
 case 116:
 #line 642 "Gmsh.y"
-{ List_Add(ActualView->TT, &yyvsp[0].d) ; ;
+{ List_Add(View->TT, &yyvsp[0].d) ; ;
     break;}
 case 117:
 #line 644 "Gmsh.y"
-{ List_Add(ActualView->TT, &yyvsp[0].d) ; ;
+{ List_Add(View->TT, &yyvsp[0].d) ; ;
     break;}
 case 118:
 #line 651 "Gmsh.y"
 { 
-      List_Add(ActualView->TT, &yyvsp[-17].d); List_Add(ActualView->TT, &yyvsp[-11].d);
-      List_Add(ActualView->TT, &yyvsp[-5].d);
-      List_Add(ActualView->TT, &yyvsp[-15].d); List_Add(ActualView->TT, &yyvsp[-9].d);
-      List_Add(ActualView->TT, &yyvsp[-3].d);
-      List_Add(ActualView->TT, &yyvsp[-13].d); List_Add(ActualView->TT, &yyvsp[-7].d);
-      List_Add(ActualView->TT, &yyvsp[-1].d);
+      List_Add(View->TT, &yyvsp[-17].d); List_Add(View->TT, &yyvsp[-11].d);
+      List_Add(View->TT, &yyvsp[-5].d);
+      List_Add(View->TT, &yyvsp[-15].d); List_Add(View->TT, &yyvsp[-9].d);
+      List_Add(View->TT, &yyvsp[-3].d);
+      List_Add(View->TT, &yyvsp[-13].d); List_Add(View->TT, &yyvsp[-7].d);
+      List_Add(View->TT, &yyvsp[-1].d);
     ;
     break;}
 case 119:
 #line 660 "Gmsh.y"
 {
-      ActualView->NbTT++ ;
+      View->NbTT++ ;
     ;
     break;}
 case 120:
 #line 667 "Gmsh.y"
-{ List_Add(ActualView->SS, &yyvsp[0].d) ; ;
+{ List_Add(View->SS, &yyvsp[0].d) ; ;
     break;}
 case 121:
 #line 669 "Gmsh.y"
-{ List_Add(ActualView->SS, &yyvsp[0].d) ; ;
+{ List_Add(View->SS, &yyvsp[0].d) ; ;
     break;}
 case 122:
 #line 677 "Gmsh.y"
 { 
-      List_Add(ActualView->SS, &yyvsp[-23].d);  List_Add(ActualView->SS, &yyvsp[-17].d);
-      List_Add(ActualView->SS, &yyvsp[-11].d); List_Add(ActualView->SS, &yyvsp[-5].d);
-      List_Add(ActualView->SS, &yyvsp[-21].d);  List_Add(ActualView->SS, &yyvsp[-15].d);
-      List_Add(ActualView->SS, &yyvsp[-9].d); List_Add(ActualView->SS, &yyvsp[-3].d);
-      List_Add(ActualView->SS, &yyvsp[-19].d);  List_Add(ActualView->SS, &yyvsp[-13].d);
-      List_Add(ActualView->SS, &yyvsp[-7].d); List_Add(ActualView->SS, &yyvsp[-1].d);
+      List_Add(View->SS, &yyvsp[-23].d);  List_Add(View->SS, &yyvsp[-17].d);
+      List_Add(View->SS, &yyvsp[-11].d); List_Add(View->SS, &yyvsp[-5].d);
+      List_Add(View->SS, &yyvsp[-21].d);  List_Add(View->SS, &yyvsp[-15].d);
+      List_Add(View->SS, &yyvsp[-9].d); List_Add(View->SS, &yyvsp[-3].d);
+      List_Add(View->SS, &yyvsp[-19].d);  List_Add(View->SS, &yyvsp[-13].d);
+      List_Add(View->SS, &yyvsp[-7].d); List_Add(View->SS, &yyvsp[-1].d);
     ;
     break;}
 case 123:
 #line 686 "Gmsh.y"
 {
-      ActualView->NbSS++ ;
+      View->NbSS++ ;
     ;
     break;}
 case 124:
 #line 693 "Gmsh.y"
-{ List_Add(ActualView->VS, &yyvsp[0].d) ; ;
+{ List_Add(View->VS, &yyvsp[0].d) ; ;
     break;}
 case 125:
 #line 695 "Gmsh.y"
-{ List_Add(ActualView->VS, &yyvsp[0].d) ; ;
+{ List_Add(View->VS, &yyvsp[0].d) ; ;
     break;}
 case 126:
 #line 703 "Gmsh.y"
 { 
-      List_Add(ActualView->VS, &yyvsp[-23].d);  List_Add(ActualView->VS, &yyvsp[-17].d);
-      List_Add(ActualView->VS, &yyvsp[-11].d); List_Add(ActualView->VS, &yyvsp[-5].d);
-      List_Add(ActualView->VS, &yyvsp[-21].d);  List_Add(ActualView->VS, &yyvsp[-15].d);
-      List_Add(ActualView->VS, &yyvsp[-9].d); List_Add(ActualView->VS, &yyvsp[-3].d);
-      List_Add(ActualView->VS, &yyvsp[-19].d);  List_Add(ActualView->VS, &yyvsp[-13].d);
-      List_Add(ActualView->VS, &yyvsp[-7].d); List_Add(ActualView->VS, &yyvsp[-1].d);
+      List_Add(View->VS, &yyvsp[-23].d);  List_Add(View->VS, &yyvsp[-17].d);
+      List_Add(View->VS, &yyvsp[-11].d); List_Add(View->VS, &yyvsp[-5].d);
+      List_Add(View->VS, &yyvsp[-21].d);  List_Add(View->VS, &yyvsp[-15].d);
+      List_Add(View->VS, &yyvsp[-9].d); List_Add(View->VS, &yyvsp[-3].d);
+      List_Add(View->VS, &yyvsp[-19].d);  List_Add(View->VS, &yyvsp[-13].d);
+      List_Add(View->VS, &yyvsp[-7].d); List_Add(View->VS, &yyvsp[-1].d);
     ;
     break;}
 case 127:
 #line 712 "Gmsh.y"
 {
-      ActualView->NbVS++ ;
+      View->NbVS++ ;
     ;
     break;}
 case 128:
 #line 719 "Gmsh.y"
-{ List_Add(ActualView->TS, &yyvsp[0].d) ; ;
+{ List_Add(View->TS, &yyvsp[0].d) ; ;
     break;}
 case 129:
 #line 721 "Gmsh.y"
-{ List_Add(ActualView->TS, &yyvsp[0].d) ; ;
+{ List_Add(View->TS, &yyvsp[0].d) ; ;
     break;}
 case 130:
 #line 729 "Gmsh.y"
 { 
-      List_Add(ActualView->TS, &yyvsp[-23].d);  List_Add(ActualView->TS, &yyvsp[-17].d);
-      List_Add(ActualView->TS, &yyvsp[-11].d); List_Add(ActualView->TS, &yyvsp[-5].d);
-      List_Add(ActualView->TS, &yyvsp[-21].d);  List_Add(ActualView->TS, &yyvsp[-15].d);
-      List_Add(ActualView->TS, &yyvsp[-9].d); List_Add(ActualView->TS, &yyvsp[-3].d);
-      List_Add(ActualView->TS, &yyvsp[-19].d);  List_Add(ActualView->TS, &yyvsp[-13].d);
-      List_Add(ActualView->TS, &yyvsp[-7].d); List_Add(ActualView->TS, &yyvsp[-1].d);
+      List_Add(View->TS, &yyvsp[-23].d);  List_Add(View->TS, &yyvsp[-17].d);
+      List_Add(View->TS, &yyvsp[-11].d); List_Add(View->TS, &yyvsp[-5].d);
+      List_Add(View->TS, &yyvsp[-21].d);  List_Add(View->TS, &yyvsp[-15].d);
+      List_Add(View->TS, &yyvsp[-9].d); List_Add(View->TS, &yyvsp[-3].d);
+      List_Add(View->TS, &yyvsp[-19].d);  List_Add(View->TS, &yyvsp[-13].d);
+      List_Add(View->TS, &yyvsp[-7].d); List_Add(View->TS, &yyvsp[-1].d);
     ;
     break;}
 case 131:
 #line 738 "Gmsh.y"
 {
-      ActualView->NbTS++ ;
+      View->NbTS++ ;
     ;
     break;}
 case 132:
diff --git a/Parser/Gmsh.y b/Parser/Gmsh.y
index cd9106c33f..fde89b830a 100644
--- a/Parser/Gmsh.y
+++ b/Parser/Gmsh.y
@@ -1,6 +1,6 @@
 %{ 
 
-// $Id: Gmsh.y,v 1.87 2001-08-01 14:30:40 geuzaine Exp $
+// $Id: Gmsh.y,v 1.88 2001-08-06 08:09:51 geuzaine Exp $
 
   //
   // Generaliser sprintf avec des chaines de caracteres
@@ -39,7 +39,6 @@ List_T *Symbol_L=NULL;
 
 extern Context_T  CTX;
 extern Mesh      *THEM;
-extern Post_View *ActualView;
 
 static FILE          *yyinTab[MAX_OPEN_FILES];
 static int            yylinenoTab[MAX_OPEN_FILES];
@@ -63,6 +62,7 @@ static StringXColor   *pColCat;
 static double         (*pNumOpt)(int num, int action, double value);
 static char*          (*pStrOpt)(int num, int action, char *value);
 static unsigned int   (*pColOpt)(int num, int action, unsigned int value);
+static Post_View      *View;
 
 char *strsave(char *ptr);
 void  yyerror (char *s);
@@ -451,7 +451,7 @@ View :
 Views :
     /* none */
     {
-      BeginView(1); 
+      View = BeginView(1); 
     }
   | Views ScalarPoint
   | Views VectorPoint
@@ -469,129 +469,129 @@ Views :
 
 ScalarPointValues :
     FExpr
-    { List_Add(ActualView->SP, &$1) ; }
+    { List_Add(View->SP, &$1) ; }
   | ScalarPointValues ',' FExpr
-    { List_Add(ActualView->SP, &$3) ; }
+    { List_Add(View->SP, &$3) ; }
   ;
 
 ScalarPoint : 
     tScalarPoint '(' FExpr ',' FExpr ',' FExpr ')'
     { 
-      List_Add(ActualView->SP, &$3); List_Add(ActualView->SP, &$5);
-      List_Add(ActualView->SP, &$7);
+      List_Add(View->SP, &$3); List_Add(View->SP, &$5);
+      List_Add(View->SP, &$7);
     }
     '{' ScalarPointValues '}' tEND
     {
-      ActualView->NbSP++ ;
+      View->NbSP++ ;
     }
 ;
 
 VectorPointValues :
     FExpr
-    { List_Add(ActualView->VP, &$1) ; }
+    { List_Add(View->VP, &$1) ; }
   | VectorPointValues ',' FExpr
-    { List_Add(ActualView->VP, &$3) ; }
+    { List_Add(View->VP, &$3) ; }
   ;
 
 VectorPoint : 
     tVectorPoint '(' FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->VP, &$3); List_Add(ActualView->VP, &$5);
-      List_Add(ActualView->VP, &$7); 
+      List_Add(View->VP, &$3); List_Add(View->VP, &$5);
+      List_Add(View->VP, &$7); 
     }
     '{' VectorPointValues '}' tEND
     {
-      ActualView->NbVP++ ;
+      View->NbVP++ ;
     }
 ;
 
 TensorPointValues :
     FExpr
-    { List_Add(ActualView->TP, &$1) ; }
+    { List_Add(View->TP, &$1) ; }
   | TensorPointValues ',' FExpr
-    { List_Add(ActualView->TP, &$3) ; }
+    { List_Add(View->TP, &$3) ; }
   ;
 
 TensorPoint :
     tTensorPoint '(' FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->TP, &$3); List_Add(ActualView->TP, &$5);
-      List_Add(ActualView->TP, &$7);
+      List_Add(View->TP, &$3); List_Add(View->TP, &$5);
+      List_Add(View->TP, &$7);
     }
     '{' TensorPointValues '}' tEND
     {
-      ActualView->NbTP++ ;
+      View->NbTP++ ;
     }
 ;
 
 ScalarLineValues :
     FExpr
-    { List_Add(ActualView->SL, &$1) ; }
+    { List_Add(View->SL, &$1) ; }
   | ScalarLineValues ',' FExpr
-    { List_Add(ActualView->SL, &$3) ; }
+    { List_Add(View->SL, &$3) ; }
   ;
 
 ScalarLine : 
     tScalarLine '(' FExpr ',' FExpr ',' FExpr ',' 
                     FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->SL, &$3); List_Add(ActualView->SL, &$9);
-      List_Add(ActualView->SL, &$5); List_Add(ActualView->SL, &$11);
-      List_Add(ActualView->SL, &$7); List_Add(ActualView->SL, &$13);
+      List_Add(View->SL, &$3); List_Add(View->SL, &$9);
+      List_Add(View->SL, &$5); List_Add(View->SL, &$11);
+      List_Add(View->SL, &$7); List_Add(View->SL, &$13);
     }
     '{' ScalarLineValues '}' tEND
     {
-      ActualView->NbSL++ ;
+      View->NbSL++ ;
     }
 ;
 
 VectorLineValues :
     FExpr
-    { List_Add(ActualView->VL, &$1) ; }
+    { List_Add(View->VL, &$1) ; }
   | VectorLineValues ',' FExpr
-    { List_Add(ActualView->VL, &$3) ; }
+    { List_Add(View->VL, &$3) ; }
   ;
 
 VectorLine : 
     tVectorLine '(' FExpr ',' FExpr ',' FExpr ',' 
                     FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->VL, &$3); List_Add(ActualView->VL, &$9);
-      List_Add(ActualView->VL, &$5); List_Add(ActualView->VL, &$11);
-      List_Add(ActualView->VL, &$7); List_Add(ActualView->VL, &$13);
+      List_Add(View->VL, &$3); List_Add(View->VL, &$9);
+      List_Add(View->VL, &$5); List_Add(View->VL, &$11);
+      List_Add(View->VL, &$7); List_Add(View->VL, &$13);
     }
     '{' VectorLineValues '}' tEND
     {
-      ActualView->NbVL++ ;
+      View->NbVL++ ;
     }
 ;
 
 TensorLineValues :
     FExpr
-    { List_Add(ActualView->TL, &$1) ; }
+    { List_Add(View->TL, &$1) ; }
   | TensorLineValues ',' FExpr
-    { List_Add(ActualView->TL, &$3) ; }
+    { List_Add(View->TL, &$3) ; }
   ;
 
 TensorLine :
     tTensorLine '(' FExpr ',' FExpr ',' FExpr ',' 
                     FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->TL, &$3); List_Add(ActualView->TL, &$9);
-      List_Add(ActualView->TL, &$5); List_Add(ActualView->TL, &$11);
-      List_Add(ActualView->TL, &$7); List_Add(ActualView->TL, &$13);
+      List_Add(View->TL, &$3); List_Add(View->TL, &$9);
+      List_Add(View->TL, &$5); List_Add(View->TL, &$11);
+      List_Add(View->TL, &$7); List_Add(View->TL, &$13);
     }
     '{' TensorLineValues '}' tEND
     {
-      ActualView->NbTL++ ;
+      View->NbTL++ ;
     }
 ;
 
 ScalarTriangleValues :
     FExpr
-    { List_Add(ActualView->ST, &$1) ; }
+    { List_Add(View->ST, &$1) ; }
   | ScalarTriangleValues ',' FExpr
-    { List_Add(ActualView->ST, &$3) ; }
+    { List_Add(View->ST, &$3) ; }
   ;
 
 ScalarTriangle : 
@@ -599,24 +599,24 @@ ScalarTriangle :
                         FExpr ',' FExpr ',' FExpr ','
                         FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->ST, &$3); List_Add(ActualView->ST, &$9);
-      List_Add(ActualView->ST, &$15);
-      List_Add(ActualView->ST, &$5); List_Add(ActualView->ST, &$11);
-      List_Add(ActualView->ST, &$17);
-      List_Add(ActualView->ST, &$7); List_Add(ActualView->ST, &$13);
-      List_Add(ActualView->ST, &$19);
+      List_Add(View->ST, &$3); List_Add(View->ST, &$9);
+      List_Add(View->ST, &$15);
+      List_Add(View->ST, &$5); List_Add(View->ST, &$11);
+      List_Add(View->ST, &$17);
+      List_Add(View->ST, &$7); List_Add(View->ST, &$13);
+      List_Add(View->ST, &$19);
     }
     '{' ScalarTriangleValues '}' tEND
     {
-      ActualView->NbST++ ;
+      View->NbST++ ;
     }
 ;
 
 VectorTriangleValues :
     FExpr
-    { List_Add(ActualView->VT, &$1) ; }
+    { List_Add(View->VT, &$1) ; }
   | VectorTriangleValues ',' FExpr
-    { List_Add(ActualView->VT, &$3) ; }
+    { List_Add(View->VT, &$3) ; }
   ;
 
 VectorTriangle : 
@@ -624,24 +624,24 @@ VectorTriangle :
                         FExpr ',' FExpr ',' FExpr ','
                         FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->VT, &$3); List_Add(ActualView->VT, &$9);
-      List_Add(ActualView->VT, &$15);
-      List_Add(ActualView->VT, &$5); List_Add(ActualView->VT, &$11);
-      List_Add(ActualView->VT, &$17);
-      List_Add(ActualView->VT, &$7); List_Add(ActualView->VT, &$13);
-      List_Add(ActualView->VT, &$19);
+      List_Add(View->VT, &$3); List_Add(View->VT, &$9);
+      List_Add(View->VT, &$15);
+      List_Add(View->VT, &$5); List_Add(View->VT, &$11);
+      List_Add(View->VT, &$17);
+      List_Add(View->VT, &$7); List_Add(View->VT, &$13);
+      List_Add(View->VT, &$19);
     }
     '{' VectorTriangleValues '}' tEND
     {
-      ActualView->NbVT++ ;
+      View->NbVT++ ;
     }
 ;
 
 TensorTriangleValues :
     FExpr
-    { List_Add(ActualView->TT, &$1) ; }
+    { List_Add(View->TT, &$1) ; }
   | TensorTriangleValues ',' FExpr
-    { List_Add(ActualView->TT, &$3) ; }
+    { List_Add(View->TT, &$3) ; }
   ;
 
 TensorTriangle :
@@ -649,24 +649,24 @@ TensorTriangle :
                         FExpr ',' FExpr ',' FExpr ','
                         FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->TT, &$3); List_Add(ActualView->TT, &$9);
-      List_Add(ActualView->TT, &$15);
-      List_Add(ActualView->TT, &$5); List_Add(ActualView->TT, &$11);
-      List_Add(ActualView->TT, &$17);
-      List_Add(ActualView->TT, &$7); List_Add(ActualView->TT, &$13);
-      List_Add(ActualView->TT, &$19);
+      List_Add(View->TT, &$3); List_Add(View->TT, &$9);
+      List_Add(View->TT, &$15);
+      List_Add(View->TT, &$5); List_Add(View->TT, &$11);
+      List_Add(View->TT, &$17);
+      List_Add(View->TT, &$7); List_Add(View->TT, &$13);
+      List_Add(View->TT, &$19);
     }
     '{' TensorTriangleValues '}' tEND
     {
-      ActualView->NbTT++ ;
+      View->NbTT++ ;
     }
 ;
 
 ScalarTetrahedronValues :
     FExpr
-    { List_Add(ActualView->SS, &$1) ; }
+    { List_Add(View->SS, &$1) ; }
   | ScalarTetrahedronValues ',' FExpr
-    { List_Add(ActualView->SS, &$3) ; }
+    { List_Add(View->SS, &$3) ; }
   ;
 
 ScalarTetrahedron : 
@@ -675,24 +675,24 @@ ScalarTetrahedron :
                            FExpr ',' FExpr ',' FExpr ',' 
                            FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->SS, &$3);  List_Add(ActualView->SS, &$9);
-      List_Add(ActualView->SS, &$15); List_Add(ActualView->SS, &$21);
-      List_Add(ActualView->SS, &$5);  List_Add(ActualView->SS, &$11);
-      List_Add(ActualView->SS, &$17); List_Add(ActualView->SS, &$23);
-      List_Add(ActualView->SS, &$7);  List_Add(ActualView->SS, &$13);
-      List_Add(ActualView->SS, &$19); List_Add(ActualView->SS, &$25);
+      List_Add(View->SS, &$3);  List_Add(View->SS, &$9);
+      List_Add(View->SS, &$15); List_Add(View->SS, &$21);
+      List_Add(View->SS, &$5);  List_Add(View->SS, &$11);
+      List_Add(View->SS, &$17); List_Add(View->SS, &$23);
+      List_Add(View->SS, &$7);  List_Add(View->SS, &$13);
+      List_Add(View->SS, &$19); List_Add(View->SS, &$25);
     }
     '{' ScalarTetrahedronValues '}' tEND
     {
-      ActualView->NbSS++ ;
+      View->NbSS++ ;
     }
 ;
 
 VectorTetrahedronValues :
     FExpr
-    { List_Add(ActualView->VS, &$1) ; }
+    { List_Add(View->VS, &$1) ; }
   | VectorTetrahedronValues ',' FExpr
-    { List_Add(ActualView->VS, &$3) ; }
+    { List_Add(View->VS, &$3) ; }
   ;
 
 VectorTetrahedron : 
@@ -701,24 +701,24 @@ VectorTetrahedron :
                            FExpr ',' FExpr ',' FExpr ',' 
                            FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->VS, &$3);  List_Add(ActualView->VS, &$9);
-      List_Add(ActualView->VS, &$15); List_Add(ActualView->VS, &$21);
-      List_Add(ActualView->VS, &$5);  List_Add(ActualView->VS, &$11);
-      List_Add(ActualView->VS, &$17); List_Add(ActualView->VS, &$23);
-      List_Add(ActualView->VS, &$7);  List_Add(ActualView->VS, &$13);
-      List_Add(ActualView->VS, &$19); List_Add(ActualView->VS, &$25);
+      List_Add(View->VS, &$3);  List_Add(View->VS, &$9);
+      List_Add(View->VS, &$15); List_Add(View->VS, &$21);
+      List_Add(View->VS, &$5);  List_Add(View->VS, &$11);
+      List_Add(View->VS, &$17); List_Add(View->VS, &$23);
+      List_Add(View->VS, &$7);  List_Add(View->VS, &$13);
+      List_Add(View->VS, &$19); List_Add(View->VS, &$25);
     }
     '{' VectorTetrahedronValues '}' tEND
     {
-      ActualView->NbVS++ ;
+      View->NbVS++ ;
     }
 ;
 
 TensorTetrahedronValues :
     FExpr
-    { List_Add(ActualView->TS, &$1) ; }
+    { List_Add(View->TS, &$1) ; }
   | TensorTetrahedronValues ',' FExpr
-    { List_Add(ActualView->TS, &$3) ; }
+    { List_Add(View->TS, &$3) ; }
   ;
 
 TensorTetrahedron :
@@ -727,16 +727,16 @@ TensorTetrahedron :
                            FExpr ',' FExpr ',' FExpr ',' 
                            FExpr ',' FExpr ',' FExpr ')' 
     { 
-      List_Add(ActualView->TS, &$3);  List_Add(ActualView->TS, &$9);
-      List_Add(ActualView->TS, &$15); List_Add(ActualView->TS, &$21);
-      List_Add(ActualView->TS, &$5);  List_Add(ActualView->TS, &$11);
-      List_Add(ActualView->TS, &$17); List_Add(ActualView->TS, &$23);
-      List_Add(ActualView->TS, &$7);  List_Add(ActualView->TS, &$13);
-      List_Add(ActualView->TS, &$19); List_Add(ActualView->TS, &$25);
+      List_Add(View->TS, &$3);  List_Add(View->TS, &$9);
+      List_Add(View->TS, &$15); List_Add(View->TS, &$21);
+      List_Add(View->TS, &$5);  List_Add(View->TS, &$11);
+      List_Add(View->TS, &$17); List_Add(View->TS, &$23);
+      List_Add(View->TS, &$7);  List_Add(View->TS, &$13);
+      List_Add(View->TS, &$19); List_Add(View->TS, &$25);
     }
     '{' TensorTetrahedronValues '}' tEND
     {
-      ActualView->NbTS++ ;
+      View->NbTS++ ;
     }
 ;
 
diff --git a/Parser/Gmsh.yy.cpp b/Parser/Gmsh.yy.cpp
index 3a133210dd..947b54aa23 100644
--- a/Parser/Gmsh.yy.cpp
+++ b/Parser/Gmsh.yy.cpp
@@ -2,7 +2,7 @@
 /* A lexical scanner generated by flex */
 
 /* Scanner skeleton version:
- * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.100 2001-08-01 14:30:41 geuzaine Exp $
+ * $Header: /cvsroot/gmsh/Parser/Gmsh.yy.cpp,v 1.101 2001-08-06 08:09:51 geuzaine Exp $
  */
 
 #define FLEX_SCANNER
@@ -990,7 +990,7 @@ char *yytext;
 #define INITIAL 0
 #line 2 "Gmsh.l"
 
-// $Id: Gmsh.yy.cpp,v 1.100 2001-08-01 14:30:41 geuzaine Exp $
+// $Id: Gmsh.yy.cpp,v 1.101 2001-08-06 08:09:51 geuzaine Exp $
 
 #include <stdio.h>
 #include <stdlib.h>
diff --git a/Plugin/CutMap.cpp b/Plugin/CutMap.cpp
index ef28d732b0..6b25544945 100644
--- a/Plugin/CutMap.cpp
+++ b/Plugin/CutMap.cpp
@@ -1,4 +1,4 @@
-// $Id: CutMap.cpp,v 1.13 2001-07-31 19:25:04 geuzaine Exp $
+// $Id: CutMap.cpp,v 1.14 2001-08-06 08:09:51 geuzaine Exp $
 
 #include "CutMap.h"
 #include "List.h"
@@ -49,7 +49,7 @@ StringXNumber *GMSH_CutMapPlugin:: GetOption (int iopt)
 
 void GMSH_CutMapPlugin::CatchErrorMessage (char *errorMessage) const
 {
-  strcpy(errorMessage,"CutMap Failed...");
+  strcpy(errorMessage,"CutMap failed...");
 }
 
 double GMSH_CutMapPlugin :: levelset (double x, double y, double z, double val) const
diff --git a/Plugin/CutPlane.cpp b/Plugin/CutPlane.cpp
index 81963b68bc..7a22a20f21 100644
--- a/Plugin/CutPlane.cpp
+++ b/Plugin/CutPlane.cpp
@@ -1,4 +1,4 @@
-// $Id: CutPlane.cpp,v 1.11 2001-07-31 19:25:04 geuzaine Exp $
+// $Id: CutPlane.cpp,v 1.12 2001-08-06 08:09:51 geuzaine Exp $
 
 #include "CutPlane.h"
 #include "List.h"
@@ -55,7 +55,7 @@ StringXNumber* GMSH_CutPlanePlugin:: GetOption (int iopt)
 
 void GMSH_CutPlanePlugin::CatchErrorMessage (char *errorMessage) const
 {
-  strcpy(errorMessage,"CutPlane Failed...");
+  strcpy(errorMessage,"CutPlane failed...");
 }
 
 double GMSH_CutPlanePlugin :: levelset (double x, double y, double z, double val) const
diff --git a/Plugin/CutSphere.cpp b/Plugin/CutSphere.cpp
index 6715b4e6ed..025a2025bd 100644
--- a/Plugin/CutSphere.cpp
+++ b/Plugin/CutSphere.cpp
@@ -1,4 +1,4 @@
-// $Id: CutSphere.cpp,v 1.10 2001-07-31 19:25:04 geuzaine Exp $
+// $Id: CutSphere.cpp,v 1.11 2001-08-06 08:09:51 geuzaine Exp $
 
 #include <string.h>
 #include "CutSphere.h"
@@ -56,7 +56,7 @@ StringXNumber* GMSH_CutSpherePlugin:: GetOption (int iopt)
 
 void GMSH_CutSpherePlugin::CatchErrorMessage (char *errorMessage) const
 {
-  strcpy(errorMessage,"CutSphere Failed...");
+  strcpy(errorMessage,"CutSphere failed...");
 }
 
 double GMSH_CutSpherePlugin :: levelset (double x, double y, double z, double val) const
diff --git a/Plugin/LevelsetPlugin.cpp b/Plugin/LevelsetPlugin.cpp
index 39a2c48441..69a8b522c4 100644
--- a/Plugin/LevelsetPlugin.cpp
+++ b/Plugin/LevelsetPlugin.cpp
@@ -1,13 +1,10 @@
-// $Id: LevelsetPlugin.cpp,v 1.8 2001-07-31 19:25:04 geuzaine Exp $
+// $Id: LevelsetPlugin.cpp,v 1.9 2001-08-06 08:09:51 geuzaine Exp $
 
 #include "LevelsetPlugin.h"
 #include "List.h"
 #include "Views.h"
 #include "Iso.h"
 
-// that's the bad part of the story ...
-extern Post_View *ActualView;
-
 GMSH_LevelsetPlugin::GMSH_LevelsetPlugin()
 {
   processed = 0;
@@ -37,12 +34,13 @@ Post_View *GMSH_LevelsetPlugin::execute (Post_View *v)
     a cut of the actual view with a levelset.
    */
   int k,i,nb,edtet[6][2] = {{0,1},{0,2},{0,3},{1,2},{1,3},{2,3}};
+  Post_View *View;
 
   //   for all scalar simplices 
 
   if(v->NbSS)
     {
-      BeginView(1);
+      View = BeginView(1);
       nb = List_Nbr(v->SS) / v->NbSS ;
       for(i = 0 ; i < List_Nbr(v->SS) ; i+=nb)
 	{
@@ -67,11 +65,11 @@ Post_View *GMSH_LevelsetPlugin::execute (Post_View *v)
 	    }
 	  if(nx == 3 || nx == 4)
 	    {
-	      for(k=0;k<3;k++)List_Add(ActualView->ST, &Xp[k]);
-	      for(k=0;k<3;k++)List_Add(ActualView->ST, &Yp[k]);
-	      for(k=0;k<3;k++)List_Add(ActualView->ST, &Zp[k]);
-	      for(k=0;k<3;k++)List_Add(ActualView->ST, &myVals[k]);
-	      ActualView->NbST++;
+	      for(k=0;k<3;k++)List_Add(View->ST, &Xp[k]);
+	      for(k=0;k<3;k++)List_Add(View->ST, &Yp[k]);
+	      for(k=0;k<3;k++)List_Add(View->ST, &Zp[k]);
+	      for(k=0;k<3;k++)List_Add(View->ST, &myVals[k]);
+	      View->NbST++;
 	    }
 	  if(nx == 4)
 	    {
@@ -87,11 +85,11 @@ Post_View *GMSH_LevelsetPlugin::execute (Post_View *v)
 	      Yp[2] = yy;
 	      Zp[2] = zz;
 	      myVals[2] = vv;
-	      for(k=1;k<4;k++)List_Add(ActualView->ST, &Xp[k %4]);
-	      for(k=1;k<4;k++)List_Add(ActualView->ST, &Yp[k % 4]);
-	      for(k=1;k<4;k++)List_Add(ActualView->ST, &Zp[k % 4]);
-	      for(k=1;k<4;k++)List_Add(ActualView->ST, &myVals[k %4]);
-	      ActualView->NbST++;
+	      for(k=1;k<4;k++)List_Add(View->ST, &Xp[k %4]);
+	      for(k=1;k<4;k++)List_Add(View->ST, &Yp[k % 4]);
+	      for(k=1;k<4;k++)List_Add(View->ST, &Zp[k % 4]);
+	      for(k=1;k<4;k++)List_Add(View->ST, &myVals[k %4]);
+	      View->NbST++;
 	    }
 	}
       char name[1024],filename[1024];
@@ -101,9 +99,9 @@ Post_View *GMSH_LevelsetPlugin::execute (Post_View *v)
       EndView(1, filename, name);
       
       Msg(INFO, "Levelset plugin OK: created view '%s' (%d triangles)",
-	  name, ActualView->NbST);
-      processed = ActualView;
-      return ActualView;
+	  name, View->NbST);
+      processed = View;
+      return View;
     }
 
   Msg(INFO, "Levelset plugin: nothing to do");
diff --git a/Plugin/Makefile b/Plugin/Makefile
index 52387d79ea..43b1566fa6 100644
--- a/Plugin/Makefile
+++ b/Plugin/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.10 2001-07-30 15:40:04 geuzaine Exp $
+# $Id: Makefile,v 1.11 2001-08-06 08:09:51 geuzaine Exp $
 #
 # Makefile for "libAdapt.a"
 #
@@ -20,7 +20,12 @@ VERSION_FLAGS =
 RMFLAGS   = -f
 CFLAGS    = $(C_FLAGS) $(OS_FLAGS) $(VERSION_FLAGS) $(INCLUDE) $(GUI_INCLUDE) 
 
-SRC = Plugin.cpp CutPlane.cpp CutSphere.cpp LevelsetPlugin.cpp CutMap.cpp
+SRC = Plugin.cpp\
+        LevelsetPlugin.cpp\
+          CutPlane.cpp CutSphere.cpp CutMap.cpp\
+        Smooth.cpp\
+        Transform.cpp\
+        Skin.cpp
 
 OBJ = $(SRC:.cpp=.o)
 
diff --git a/Plugin/Plugin.cpp b/Plugin/Plugin.cpp
index 5134fbcbc3..45f948c81b 100644
--- a/Plugin/Plugin.cpp
+++ b/Plugin/Plugin.cpp
@@ -1,4 +1,4 @@
-// $Id: Plugin.cpp,v 1.17 2001-08-01 09:31:57 geuzaine Exp $
+// $Id: Plugin.cpp,v 1.18 2001-08-06 08:09:51 geuzaine Exp $
 
 #ifndef _NODLL
 #include <dlfcn.h>
@@ -10,9 +10,12 @@
 #include "Plugin.h"
 #include "PluginManager.h"
 
+#include "CutMap.h"
 #include "CutPlane.h"
 #include "CutSphere.h"
-#include "CutMap.h"
+#include "Skin.h"
+#include "Smooth.h"
+#include "Transform.h"
 
 using namespace std;
 
@@ -100,12 +103,18 @@ void GMSH_PluginManager::RegisterDefaultPlugins(){
   struct dirent **list;
   char ext[6];
 
+  allPlugins.insert(std::pair<char*,GMSH_Plugin*>("CutMap",
+						  GMSH_RegisterCutMapPlugin()));
   allPlugins.insert(std::pair<char*,GMSH_Plugin*>("CutPlane",
 						  GMSH_RegisterCutPlanePlugin()));
   allPlugins.insert(std::pair<char*,GMSH_Plugin*>("CutSphere",
 						  GMSH_RegisterCutSpherePlugin()));
-  allPlugins.insert(std::pair<char*,GMSH_Plugin*>("CutMap",
-						  GMSH_RegisterCutMapPlugin()));
+  allPlugins.insert(std::pair<char*,GMSH_Plugin*>("Skin",
+						  GMSH_RegisterSkinPlugin()));
+  allPlugins.insert(std::pair<char*,GMSH_Plugin*>("Smooth",
+						  GMSH_RegisterSmoothPlugin()));
+  allPlugins.insert(std::pair<char*,GMSH_Plugin*>("Transform",
+						  GMSH_RegisterTransformPlugin()));
 
   char *homeplugins = getenv ("GMSHPLUGINSHOME");
   if(!homeplugins)return;
diff --git a/Plugin/ideas_for_new_plugins b/Plugin/ideas_for_new_plugins
index 5bba76bdfa..e69de29bb2 100644
--- a/Plugin/ideas_for_new_plugins
+++ b/Plugin/ideas_for_new_plugins
@@ -1,11 +0,0 @@
-
-Plugin(Skin):
-- options: none
-- help: Gets the skin of a 3D scalar map (eliminates all interior drawing)
-
-Plugin(Transform): 
-- options: matrice de transformation 4x4, option pour effectuer la
-transformation in place ou pour creer une nouvelle carte
-- help: transforms the view by the transformation matrix
-
-
-- 
GitLab