diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 45a655f17858594ec94325ca92e3660f54b3a93a..7ea16af69ff721f500c415076319b9fb637456e2 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.293 2004-04-24 06:13:45 geuzaine Exp $
+// $Id: GUI.cpp,v 1.294 2004-04-26 19:54:16 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -2374,9 +2374,6 @@ void GUI::create_option_window()
 
 void GUI::update_view_window(int num)
 {
-  int i;
-  double val;
-
   if(num < 0 || num >= List_Nbr(CTX.post.list))
     return;
 
@@ -2449,7 +2446,7 @@ void GUI::update_view_window(int num)
   int range_type = (int)opt_view_range_type(num, GMSH_GUI, 0);
   opt_view_custom_min(num, GMSH_GUI, 0);
   opt_view_custom_max(num, GMSH_GUI, 0);
-  for(i = 31; i <= 32; i++) {
+  for(int i = 31; i <= 32; i++) {
     view_value[i]->minimum(v->CustomMin);
     view_value[i]->maximum(v->CustomMax);
     if(range_type == DRAW_POST_RANGE_CUSTOM)
@@ -2464,14 +2461,22 @@ void GUI::update_view_window(int num)
   opt_view_offset0(num, GMSH_GUI, 0);
   opt_view_offset1(num, GMSH_GUI, 0);
   opt_view_offset2(num, GMSH_GUI, 0);
+  double val1 = 10. * CTX.lc;
+  for(int i = 40; i <= 42; i++) {
+    view_value[i]->step(val1/100.);
+    view_value[i]->minimum(-val1);
+    view_value[i]->maximum(val1);
+  }
   opt_view_raise0(num, GMSH_GUI, 0);
   opt_view_raise1(num, GMSH_GUI, 0);
   opt_view_raise2(num, GMSH_GUI, 0);
-  val = 10. * CTX.lc;
-  for(i = 40; i <= 45; i++) {
-    view_value[i]->step(val, 1000);
-    view_value[i]->minimum(-val);
-    view_value[i]->maximum(val);
+  double maxval = MAX(fabs(v->Min), fabs(v->Max));
+  if(!maxval) maxval = 1.;
+  double val2 = 2. * CTX.lc / maxval;
+  for(int i = 43; i <= 45; i++) {
+    view_value[i]->step(val2/100.);
+    view_value[i]->minimum(-val2);
+    view_value[i]->maximum(val2);
   }
 
   // timestep
diff --git a/Graphics/Draw.h b/Graphics/Draw.h
index ab050bc1632a5c0977c16edf377fdc0f64cffb69..f0506ae03d96670d06d87d4b4af09c776706c86f 100644
--- a/Graphics/Draw.h
+++ b/Graphics/Draw.h
@@ -42,7 +42,6 @@ void set_r(int i, double val);
 void set_t(int i, double val);
 void set_s(int i, double val);
 
-void RaiseFill(int i, double Val, double ValMin, double Raise[3][8]);
 void PaletteContinuous(Post_View * View, double min, double max, double val);
 void PaletteContinuousLinear(Post_View * v, double min, double max, double val);
 void PaletteDiscrete(Post_View * View, int nbi, int i);
@@ -72,8 +71,10 @@ void Draw_Axes(double s);
 void Draw_SmallAxes(void);
 void Draw_Sphere(double size, double x, double y, double z, int light);
 void Draw_Cylinder(double width, double *x, double *y, double *z, int light);
-void Draw_Point(int type, double size, double *x, double *y, double *z, double Raise[3][8], int light);
-void Draw_Line(int type, double width, double *x, double *y, double *z, double Raise[3][8], int light);
+void Draw_Point(int type, double size, double *x, double *y, double *z, 
+		double Raise[3][8], int light);
+void Draw_Line(int type, double width, double *x, double *y, double *z,
+	       double Raise[3][8], int light);
 void Draw_Triangle(double *x, double *y, double *z,double *n,
 		   double Raise[3][8], int light);
 void Draw_Quadrangle(double *x, double *y, double *z, double *n,
@@ -99,76 +100,76 @@ void Draw_Prism_Volume(void *a, void *b);
 void Draw_Pyramid_Volume(void *a, void *b);
 
 void Draw_ScalarPoint(Post_View *View, int preproNormals,
-		      double ValMin, double ValMax, double Raise[3][8],
+		      double ValMin, double ValMax, 
 		      double *X, double *Y, double *Z, double *V);
 void Draw_VectorPoint(Post_View *View, 
-		      double ValMin, double ValMax, double Raise[3][8],
+		      double ValMin, double ValMax, 
 		      double *X, double *Y, double *Z, double *V);
 void Draw_TensorPoint(Post_View *View, 
-		      double ValMin, double ValMax, double Raise[3][8],
+		      double ValMin, double ValMax, 
 		      double *X, double *Y, double *Z, double *V);
 void Draw_ScalarLine(Post_View *View, int preproNormals,
-		     double ValMin, double ValMax, double Raise[3][8],
+		     double ValMin, double ValMax, 
 		     double *X, double *Y, double *Z, double *V);
 void Draw_VectorLine(Post_View *View, 
-		     double ValMin, double ValMax, double Raise[3][8],
+		     double ValMin, double ValMax, 
 		     double *X, double *Y, double *Z, double *V);
 void Draw_TensorLine(Post_View *View, 
-		     double ValMin, double ValMax, double Raise[3][8],
+		     double ValMin, double ValMax,
 		     double *X, double *Y, double *Z, double *V);
 void Draw_ScalarTriangle(Post_View *View, int preproNormals,
-			 double ValMin, double ValMax, double Raise[3][8],
+			 double ValMin, double ValMax,
 			 double *X, double *Y, double *Z, double *V);
 void Draw_VectorTriangle(Post_View *View, 
-			 double ValMin, double ValMax, double Raise[3][8],
+			 double ValMin, double ValMax,
 			 double *X, double *Y, double *Z, double *V);
 void Draw_TensorTriangle(Post_View *View, 
-			 double ValMin, double ValMax, double Raise[3][8],
+			 double ValMin, double ValMax,
 			 double *X, double *Y, double *Z, double *V);
 void Draw_ScalarTetrahedron(Post_View *View, int preproNormals,
-			    double ValMin, double ValMax, double Raise[3][8],
+			    double ValMin, double ValMax,
 			    double *X, double *Y, double *Z, double *V);
 void Draw_VectorTetrahedron(Post_View *View, 
-			    double ValMin, double ValMax, double Raise[3][8],
+			    double ValMin, double ValMax,
 			    double *X, double *Y, double *Z, double *V);
 void Draw_TensorTetrahedron(Post_View *View, 
-			    double ValMin, double ValMax, double Raise[3][8],
+			    double ValMin, double ValMax,
 			    double *X, double *Y, double *Z, double *V);
 void Draw_ScalarQuadrangle(Post_View *View, int preproNormals,
-			   double ValMin, double ValMax, double Raise[3][8],
+			   double ValMin, double ValMax,
 			   double *X, double *Y, double *Z, double *V);
 void Draw_VectorQuadrangle(Post_View *View, 
-			   double ValMin, double ValMax, double Raise[3][8],
+			   double ValMin, double ValMax,
 			   double *X, double *Y, double *Z, double *V);
 void Draw_TensorQuadrangle(Post_View *View, 
-			   double ValMin, double ValMax, double Raise[3][8],
+			   double ValMin, double ValMax,
 			   double *X, double *Y, double *Z, double *V);
 void Draw_ScalarHexahedron(Post_View *View, int preproNormals,
-			   double ValMin, double ValMax, double Raise[3][8],
+			   double ValMin, double ValMax,
 			   double *X, double *Y, double *Z, double *V);
 void Draw_VectorHexahedron(Post_View *View, 
-			   double ValMin, double ValMax, double Raise[3][8],
+			   double ValMin, double ValMax,
 			   double *X, double *Y, double *Z, double *V);
 void Draw_TensorHexahedron(Post_View *View, 
-			   double ValMin, double ValMax, double Raise[3][8],
+			   double ValMin, double ValMax,
 			   double *X, double *Y, double *Z, double *V);
 void Draw_ScalarPrism(Post_View *View, int preproNormals,
-		      double ValMin, double ValMax, double Raise[3][8],
+		      double ValMin, double ValMax,
 		      double *X, double *Y, double *Z, double *V);
 void Draw_VectorPrism(Post_View *View, 
-		      double ValMin, double ValMax, double Raise[3][8],
+		      double ValMin, double ValMax,
 		      double *X, double *Y, double *Z, double *V);
 void Draw_TensorPrism(Post_View *View, 
-		      double ValMin, double ValMax, double Raise[3][8],
+		      double ValMin, double ValMax,
 		      double *X, double *Y, double *Z, double *V);
 void Draw_ScalarPyramid(Post_View *View, int preproNormals,
-			double ValMin, double ValMax, double Raise[3][8],
+			double ValMin, double ValMax,
 			double *X, double *Y, double *Z, double *V);
 void Draw_VectorPyramid(Post_View *View, 
-			double ValMin, double ValMax, double Raise[3][8],
+			double ValMin, double ValMax,
 			double *X, double *Y, double *Z, double *V);
 void Draw_TensorPyramid(Post_View *View, 
-			double ValMin, double ValMax, double Raise[3][8],
+			double ValMin, double ValMax,
 			double *X, double *Y, double *Z, double *V);
 
 double GiveValueFromIndex_Lin(double ValMin, double ValMax, int NbIso, int Iso);
diff --git a/Graphics/Iso.cpp b/Graphics/Iso.cpp
index 7e67e0e5684c5a0527286d2d217c1cc068815611..230eb3bff31eef30ad2c432baf4dd08b9106df74 100644
--- a/Graphics/Iso.cpp
+++ b/Graphics/Iso.cpp
@@ -1,4 +1,4 @@
-// $Id: Iso.cpp,v 1.20 2004-02-07 01:40:19 geuzaine Exp $
+// $Id: Iso.cpp,v 1.21 2004-04-26 19:54:16 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -30,8 +30,6 @@
 
 extern Context_T CTX;
 
-void RaiseFill(int i, double Val, double ValMin, double Raise[3][8]);
-
 // Iso line computation for triangles.
 
 void CutTriangle1D(double *X, double *Y, double *Z, double *Val,
@@ -371,7 +369,7 @@ void EnhanceSimplexPolygon(Post_View * View, int nb,    // nb of points in polyg
 void IsoSimplex(Post_View * View,
                 int preproNormals,
                 double *X, double *Y, double *Z, double *Val,
-                double V, double Raise[3][8])
+                double V)
 {
   int nb;
   double Xp[6], Yp[6], Zp[6], PVals[6];
@@ -412,6 +410,11 @@ void IsoSimplex(Post_View * View,
   if(preproNormals)
     return;
 
+  double Raise[3][8];
+  for(int i = 0; i < 3; i++)
+    for(int k = 0; k < nb; k++)
+      Raise[i][k] = View->Raise[i] * V;
+
   if(nb == 3)
     Draw_Triangle(Xp, Yp, Zp, norms, Raise, View->Light);
   else if(nb == 4)
diff --git a/Graphics/Iso.h b/Graphics/Iso.h
index 8cc8cb0125d2d4e36ca8d6be9999656e5af02f4a..f661d7266a2dab77af225548f4632f09c3753f59 100644
--- a/Graphics/Iso.h
+++ b/Graphics/Iso.h
@@ -39,6 +39,6 @@ void CutLine1D (double *X, double *Y, double *Z, double *Val,
 void IsoSimplex (Post_View *View, 
 		 int preproNormals,
 		 double *X, double *Y, double *Z, double *Val,
-                 double V, double Raise[3][8]);
+                 double V);
   
 #endif
diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp
index 1331f8be3108249d7ef7e6895741e6a8abe1566c..3cfca657a217a4abcf62865d30c56b8bf10423dc 100644
--- a/Graphics/Post.cpp
+++ b/Graphics/Post.cpp
@@ -1,4 +1,4 @@
-// $Id: Post.cpp,v 1.57 2004-04-24 16:24:34 geuzaine Exp $
+// $Id: Post.cpp,v 1.58 2004-04-26 19:54:16 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -31,9 +31,6 @@
 
 extern Context_T CTX;
 
-static double Raise[3][8];
-static double RaiseFactor[3];
-
 // Give Value from Index
 
 double GiveValueFromIndex_Lin(double ValMin, double ValMax, int NbIso, int Iso)
@@ -126,14 +123,6 @@ void PaletteDiscrete(Post_View * v, int nbi, int i)
   glColor4ubv((GLubyte *) & v->CT.table[index]);
 }
 
-void RaiseFill(int i, double Val, double ValMin, double Raise[3][8])
-{
-  int j;
-  for(j = 0; j < 3; j++)
-    Raise[j][i] = (Val - ValMin) * RaiseFactor[j];
-}
-
-
 // Compute node coordinates taking Offset and Explode into account
 
 void Get_Coords(double Explode, double *Offset, int nbnod,
@@ -193,9 +182,7 @@ int changedEye()
 
 int compareEye(double *q, double *w, int nbnodes)
 {
-  double d, dq, dw, cgq[3] = { 0., 0., 0. }, cgw[3] =
-  {
-  0., 0., 0.};
+  double d, dq, dw, cgq[3] = { 0., 0., 0. }, cgw[3] = { 0., 0., 0.};
   for(int i = 0; i < nbnodes; i++) {
     cgq[0] += q[i];
     cgq[1] += q[i + nbnodes];
@@ -242,12 +229,9 @@ int compareEye8Nodes(const void *a, const void *b)
 // Draw_Post
 
 void Draw_ScalarList(Post_View * v, double ValMin, double ValMax,
-                     double Raise[3][8], List_T * list, int nbelm, int nbnod,
-                     int smoothnormals, void (*draw) (Post_View *, int,
-                                                      double, double,
-                                                      double[3][8], double *,
-                                                      double *, double *,
-                                                      double *))
+                     List_T * list, int nbelm, int nbnod, int smoothnormals,
+		     void (*draw) (Post_View *, int, double, double, double *, 
+				   double *, double *, double *))
 {
   int i, nb;
   double X[8], Y[8], Z[8];
@@ -266,7 +250,7 @@ void Draw_ScalarList(Post_View * v, double ValMin, double ValMax,
                    (double *)List_Pointer_Fast(list, i),
                    (double *)List_Pointer_Fast(list, i + nbnod),
                    (double *)List_Pointer_Fast(list, i + 2 * nbnod), X, Y, Z);
-        draw(v, 1, ValMin, ValMax, Raise, X, Y, Z,
+        draw(v, 1, ValMin, ValMax, X, Y, Z,
              (double *)List_Pointer_Fast(list, i + 3 * nbnod));
       }
     }
@@ -275,15 +259,15 @@ void Draw_ScalarList(Post_View * v, double ValMin, double ValMax,
                  (double *)List_Pointer_Fast(list, i),
                  (double *)List_Pointer_Fast(list, i + nbnod),
                  (double *)List_Pointer_Fast(list, i + 2 * nbnod), X, Y, Z);
-      draw(v, 0, ValMin, ValMax, Raise, X, Y, Z,
+      draw(v, 0, ValMin, ValMax, X, Y, Z,
            (double *)List_Pointer_Fast(list, i + 3 * nbnod));
     }
   }
 }
 
 void Draw_VectorList(Post_View * v, double ValMin, double ValMax,
-                     double Raise[3][8], List_T * list, int nbelm, int nbnod,
-                     void (*draw) (Post_View *, double, double, double[3][8],
+                     List_T * list, int nbelm, int nbnod,
+                     void (*draw) (Post_View *, double, double,
                                    double *, double *, double *, double *))
 {
   int i, nb;
@@ -296,15 +280,15 @@ void Draw_VectorList(Post_View * v, double ValMin, double ValMax,
                  (double *)List_Pointer_Fast(list, i),
                  (double *)List_Pointer_Fast(list, i + nbnod),
                  (double *)List_Pointer_Fast(list, i + 2 * nbnod), X, Y, Z);
-      draw(v, ValMin, ValMax, Raise, X, Y, Z,
+      draw(v, ValMin, ValMax, X, Y, Z,
            (double *)List_Pointer_Fast(list, i + 3 * nbnod));
     }
   }
 }
 
 void Draw_TensorList(Post_View * v, double ValMin, double ValMax,
-                     double Raise[3][8], List_T * list, int nbelm, int nbnod,
-                     void (*draw) (Post_View *, double, double, double[3][8],
+                     List_T * list, int nbelm, int nbnod,
+                     void (*draw) (Post_View *, double, double,
                                    double *, double *, double *, double *))
 {
   int i, nb;
@@ -317,7 +301,7 @@ void Draw_TensorList(Post_View * v, double ValMin, double ValMax,
                  (double *)List_Pointer_Fast(list, i),
                  (double *)List_Pointer_Fast(list, i + nbnod),
                  (double *)List_Pointer_Fast(list, i + 2 * nbnod), X, Y, Z);
-      draw(v, ValMin, ValMax, Raise, X, Y, Z,
+      draw(v, ValMin, ValMax, X, Y, Z,
            (double *)List_Pointer_Fast(list, i + 3 * nbnod));
     }
   }
@@ -326,7 +310,7 @@ void Draw_TensorList(Post_View * v, double ValMin, double ValMax,
 void Draw_Post(void)
 {
   int iView, j, k, nb;
-  double ValMin = 0., ValMax = 0., AbsMax;
+  double ValMin = 0., ValMax = 0.;
   Post_View *v;
 
   if(!CTX.post.list)
@@ -398,14 +382,12 @@ void Draw_Post(void)
 
             if(v->NbST && v->DrawTriangles) {
               nb = List_Nbr(v->ST) / v->NbST;
-              qsort(v->ST->array, v->NbST, nb * sizeof(double),
-                    compareEye3Nodes);
+              qsort(v->ST->array, v->NbST, nb * sizeof(double), compareEye3Nodes);
               v->Changed = 1;
             }
             if(v->NbSQ && v->DrawQuadrangles) {
               nb = List_Nbr(v->SQ) / v->NbSQ;
-              qsort(v->SQ->array, v->NbSQ, nb * sizeof(double),
-                    compareEye4Nodes);
+              qsort(v->SQ->array, v->NbSQ, nb * sizeof(double), compareEye4Nodes);
               v->Changed = 1;
             }
 
@@ -419,26 +401,22 @@ void Draw_Post(void)
 
           if(v->NbSS && v->DrawTetrahedra) {
             nb = List_Nbr(v->SS) / v->NbSS;
-            qsort(v->SS->array, v->NbSS, nb * sizeof(double),
-                  compareEye4Nodes);
+            qsort(v->SS->array, v->NbSS, nb * sizeof(double), compareEye4Nodes);
             v->Changed = 1;
           }
           if(v->NbSH && v->DrawHexahedra) {
             nb = List_Nbr(v->SH) / v->NbSH;
-            qsort(v->SH->array, v->NbSH, nb * sizeof(double),
-                  compareEye8Nodes);
+            qsort(v->SH->array, v->NbSH, nb * sizeof(double), compareEye8Nodes);
             v->Changed = 1;
           }
           if(v->NbSI && v->DrawPrisms) {
             nb = List_Nbr(v->SI) / v->NbSI;
-            qsort(v->SI->array, v->NbSI, nb * sizeof(double),
-                  compareEye6Nodes);
+            qsort(v->SI->array, v->NbSI, nb * sizeof(double), compareEye6Nodes);
             v->Changed = 1;
           }
           if(v->NbSY && v->DrawPyramids) {
             nb = List_Nbr(v->SY) / v->NbSY;
-            qsort(v->SY->array, v->NbSY, nb * sizeof(double),
-                  compareEye5Nodes);
+            qsort(v->SY->array, v->NbSY, nb * sizeof(double), compareEye5Nodes);
             v->Changed = 1;
           }
 
@@ -517,94 +495,61 @@ void Draw_Post(void)
           break;
         }
 
-        AbsMax = DMAX(fabs(ValMin), fabs(ValMax));
-        AbsMax = (AbsMax == 0.) ? 1. : AbsMax;
-
-        for(j = 0; j < 3; j++) {
-          RaiseFactor[j] = v->Raise[j] / AbsMax;
-          for(k = 0; k < 5; k++)
-            Raise[j][k] = 0.;
-        }
-
         // Points
         if(v->DrawPoints) {
           if(v->Type == DRAW_POST_3D)
-            Draw_ScalarList(v, ValMin, ValMax, Raise, v->SP, v->NbSP, 1, 0,
-                            Draw_ScalarPoint);
-          Draw_VectorList(v, ValMin, ValMax, Raise, v->VP, v->NbVP, 1,
-                          Draw_VectorPoint);
-          Draw_TensorList(v, ValMin, ValMax, Raise, v->TP, v->NbTP, 1,
-                          Draw_TensorPoint);
+            Draw_ScalarList(v, ValMin, ValMax, v->SP, v->NbSP, 1, 0, Draw_ScalarPoint);
+          Draw_VectorList(v, ValMin, ValMax, v->VP, v->NbVP, 1, Draw_VectorPoint);
+          Draw_TensorList(v, ValMin, ValMax, v->TP, v->NbTP, 1, Draw_TensorPoint);
         }
 
         // Lines
         if(v->DrawLines) {
-          Draw_ScalarList(v, ValMin, ValMax, Raise, v->SL, v->NbSL, 2, 0,
-                          Draw_ScalarLine);
-          Draw_VectorList(v, ValMin, ValMax, Raise, v->VL, v->NbVL, 2,
-                          Draw_VectorLine);
-          Draw_TensorList(v, ValMin, ValMax, Raise, v->TL, v->NbTL, 2,
-                          Draw_TensorLine);
+          Draw_ScalarList(v, ValMin, ValMax, v->SL, v->NbSL, 2, 0, Draw_ScalarLine);
+          Draw_VectorList(v, ValMin, ValMax, v->VL, v->NbVL, 2, Draw_VectorLine);
+          Draw_TensorList(v, ValMin, ValMax, v->TL, v->NbTL, 2, Draw_TensorLine);
         }
 
         // Triangles
         if(v->DrawTriangles) {
-          Draw_ScalarList(v, ValMin, ValMax, Raise, v->ST, v->NbST, 3, 1,
-                          Draw_ScalarTriangle);
-          Draw_VectorList(v, ValMin, ValMax, Raise, v->VT, v->NbVT, 3,
-                          Draw_VectorTriangle);
-          Draw_TensorList(v, ValMin, ValMax, Raise, v->TT, v->NbTT, 3,
-                          Draw_TensorTriangle);
+          Draw_ScalarList(v, ValMin, ValMax, v->ST, v->NbST, 3, 1, Draw_ScalarTriangle);
+          Draw_VectorList(v, ValMin, ValMax, v->VT, v->NbVT, 3, Draw_VectorTriangle);
+          Draw_TensorList(v, ValMin, ValMax, v->TT, v->NbTT, 3, Draw_TensorTriangle);
         }
 
         // Quadrangles
         if(v->DrawQuadrangles) {
-          Draw_ScalarList(v, ValMin, ValMax, Raise, v->SQ, v->NbSQ, 4, 1,
-                          Draw_ScalarQuadrangle);
-          Draw_VectorList(v, ValMin, ValMax, Raise, v->VQ, v->NbVQ, 4,
-                          Draw_VectorQuadrangle);
-          Draw_TensorList(v, ValMin, ValMax, Raise, v->TQ, v->NbTQ, 4,
-                          Draw_TensorQuadrangle);
+          Draw_ScalarList(v, ValMin, ValMax, v->SQ, v->NbSQ, 4, 1, Draw_ScalarQuadrangle);
+          Draw_VectorList(v, ValMin, ValMax, v->VQ, v->NbVQ, 4, Draw_VectorQuadrangle);
+          Draw_TensorList(v, ValMin, ValMax, v->TQ, v->NbTQ, 4, Draw_TensorQuadrangle);
         }
 
         // Tetrahedra
         if(v->DrawTetrahedra) {
-          Draw_ScalarList(v, ValMin, ValMax, Raise, v->SS, v->NbSS, 4, 1,
-                          Draw_ScalarTetrahedron);
-          Draw_VectorList(v, ValMin, ValMax, Raise, v->VS, v->NbVS, 4,
-                          Draw_VectorTetrahedron);
-          Draw_TensorList(v, ValMin, ValMax, Raise, v->TS, v->NbTS, 4,
-                          Draw_TensorTetrahedron);
+          Draw_ScalarList(v, ValMin, ValMax, v->SS, v->NbSS, 4, 1, Draw_ScalarTetrahedron);
+          Draw_VectorList(v, ValMin, ValMax, v->VS, v->NbVS, 4, Draw_VectorTetrahedron);
+          Draw_TensorList(v, ValMin, ValMax, v->TS, v->NbTS, 4, Draw_TensorTetrahedron);
         }
 
         // Hexahedra
         if(v->DrawHexahedra) {
-          Draw_ScalarList(v, ValMin, ValMax, Raise, v->SH, v->NbSH, 8, 1,
-                          Draw_ScalarHexahedron);
-          Draw_VectorList(v, ValMin, ValMax, Raise, v->VH, v->NbVH, 8,
-                          Draw_VectorHexahedron);
-          Draw_TensorList(v, ValMin, ValMax, Raise, v->TH, v->NbTH, 8,
-                          Draw_TensorHexahedron);
+          Draw_ScalarList(v, ValMin, ValMax, v->SH, v->NbSH, 8, 1, Draw_ScalarHexahedron);
+          Draw_VectorList(v, ValMin, ValMax, v->VH, v->NbVH, 8, Draw_VectorHexahedron);
+          Draw_TensorList(v, ValMin, ValMax, v->TH, v->NbTH, 8, Draw_TensorHexahedron);
         }
 
         // Prisms
         if(v->DrawPrisms) {
-          Draw_ScalarList(v, ValMin, ValMax, Raise, v->SI, v->NbSI, 6, 1,
-                          Draw_ScalarPrism);
-          Draw_VectorList(v, ValMin, ValMax, Raise, v->VI, v->NbVI, 6,
-                          Draw_VectorPrism);
-          Draw_TensorList(v, ValMin, ValMax, Raise, v->TI, v->NbTI, 6,
-                          Draw_TensorPrism);
+          Draw_ScalarList(v, ValMin, ValMax, v->SI, v->NbSI, 6, 1, Draw_ScalarPrism);
+          Draw_VectorList(v, ValMin, ValMax, v->VI, v->NbVI, 6, Draw_VectorPrism);
+          Draw_TensorList(v, ValMin, ValMax, v->TI, v->NbTI, 6, Draw_TensorPrism);
         }
 
         // Pyramids
         if(v->DrawPyramids) {
-          Draw_ScalarList(v, ValMin, ValMax, Raise, v->SY, v->NbSY, 5, 1,
-                          Draw_ScalarPyramid);
-          Draw_VectorList(v, ValMin, ValMax, Raise, v->VY, v->NbVY, 5,
-                          Draw_VectorPyramid);
-          Draw_TensorList(v, ValMin, ValMax, Raise, v->TY, v->NbTY, 5,
-                          Draw_TensorPyramid);
+          Draw_ScalarList(v, ValMin, ValMax, v->SY, v->NbSY, 5, 1, Draw_ScalarPyramid);
+          Draw_VectorList(v, ValMin, ValMax, v->VY, v->NbVY, 5, Draw_VectorPyramid);
+          Draw_TensorList(v, ValMin, ValMax, v->TY, v->NbTY, 5, Draw_TensorPyramid);
         }
 
         // Strings
diff --git a/Graphics/PostElement.cpp b/Graphics/PostElement.cpp
index 67cb74394cf77b6a29790c2a86c2eaf7ff1daf55..a119f1778f515cb7b6a90714756259ca675b9245 100644
--- a/Graphics/PostElement.cpp
+++ b/Graphics/PostElement.cpp
@@ -1,4 +1,4 @@
-// $Id: PostElement.cpp,v 1.26 2004-04-20 19:15:14 geuzaine Exp $
+// $Id: PostElement.cpp,v 1.27 2004-04-26 19:54:16 geuzaine Exp $
 //
 // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle
 //
@@ -52,7 +52,6 @@ extern Context_T CTX;
 void Draw_ElementBoundary(int type, Post_View * View, double *X, double *Y,
                           double *Z, double Raise[3][8])
 {
-  int k;
   double xx[8], yy[8], zz[8];
 
   glColor4ubv((GLubyte *) & CTX.color.fg);
@@ -65,12 +64,12 @@ void Draw_ElementBoundary(int type, Post_View * View, double *X, double *Y,
     break;
   case TRIANGLE:
     glBegin(GL_LINE_LOOP);
-    for(k = 0; k < 3; k++)
+    for(int k = 0; k < 3; k++)
       glVertex3d(X[k] + Raise[0][k], Y[k] + Raise[1][k], Z[k] + Raise[2][k]);
     glEnd();
     break;
   case TETRAHEDRON:
-    for(k = 0; k < 4; k++) {
+    for(int k = 0; k < 4; k++) {
       xx[k] = X[k] + Raise[0][k];
       yy[k] = Y[k] + Raise[1][k];
       zz[k] = Z[k] + Raise[2][k];
@@ -92,12 +91,12 @@ void Draw_ElementBoundary(int type, Post_View * View, double *X, double *Y,
     break;
   case QUADRANGLE:
     glBegin(GL_LINE_LOOP);
-    for(k = 0; k < 4; k++)
+    for(int k = 0; k < 4; k++)
       glVertex3d(X[k] + Raise[0][k], Y[k] + Raise[1][k], Z[k] + Raise[2][k]);
     glEnd();
     break;
   case HEXAHEDRON:
-    for(k = 0; k < 8; k++) {
+    for(int k = 0; k < 8; k++) {
       xx[k] = X[k] + Raise[0][k];
       yy[k] = Y[k] + Raise[1][k];
       zz[k] = Z[k] + Raise[2][k];
@@ -130,7 +129,7 @@ void Draw_ElementBoundary(int type, Post_View * View, double *X, double *Y,
     glEnd();
     break;
   case PRISM:
-    for(k = 0; k < 6; k++) {
+    for(int k = 0; k < 6; k++) {
       xx[k] = X[k] + Raise[0][k];
       yy[k] = Y[k] + Raise[1][k];
       zz[k] = Z[k] + Raise[2][k];
@@ -157,7 +156,7 @@ void Draw_ElementBoundary(int type, Post_View * View, double *X, double *Y,
     glEnd();
     break;
   case PYRAMID:
-    for(k = 0; k < 5; k++) {
+    for(int k = 0; k < 5; k++) {
       xx[k] = X[k] + Raise[0][k];
       yy[k] = Y[k] + Raise[1][k];
       zz[k] = Z[k] + Raise[2][k];
@@ -187,9 +186,8 @@ void Draw_ElementBoundary(int type, Post_View * View, double *X, double *Y,
 void SaturateValues(int saturate, double min, double max,
                     double *v1, double *v2, int nbnod)
 {
-  int i;
   if(saturate) {
-    for(i = 0; i < nbnod; i++) {
+    for(int i = 0; i < nbnod; i++) {
       if(v1[i] > max)
         v2[i] = max;
       else if(v1[i] < min)
@@ -199,7 +197,7 @@ void SaturateValues(int saturate, double min, double max,
     }
   }
   else {
-    for(i = 0; i < nbnod; i++) {
+    for(int i = 0; i < nbnod; i++) {
       v2[i] = v1[i];
     }
   }
@@ -231,7 +229,7 @@ void SaturateValues(int saturate, double min, double max,
 // Scalar Elements
 
 void Draw_ScalarPoint(Post_View * View, int preproNormals,
-                      double ValMin, double ValMax, double Raise[3][8],
+                      double ValMin, double ValMax,
                       double *X, double *Y, double *Z, double *V)
 {
   double d;
@@ -249,7 +247,9 @@ void Draw_ScalarPoint(Post_View * View, int preproNormals,
       d = ValMin;
   }
 
-  RaiseFill(0, d, ValMin, Raise);
+  double Raise[3][8];
+  for(int i = 0; i < 3; i++)
+    Raise[i][0] = View->Raise[i] * d;
 
   if(View->ShowElement)
     Draw_ElementBoundary(POINT, View, X, Y, Z, Raise);
@@ -257,8 +257,7 @@ void Draw_ScalarPoint(Post_View * View, int preproNormals,
   if(d >= ValMin && d <= ValMax) {
     PaletteContinuous(View, ValMin, ValMax, d);
     if(View->IntervalsType == DRAW_POST_NUMERIC) {
-      glRasterPos3d(X[0] + Raise[0][0], Y[0] + Raise[1][0],
-                    Z[0] + Raise[2][0]);
+      glRasterPos3d(X[0] + Raise[0][0], Y[0] + Raise[1][0], Z[0] + Raise[2][0]);
       sprintf(Num, View->Format, d);
       Draw_String(Num);
     }
@@ -268,10 +267,10 @@ void Draw_ScalarPoint(Post_View * View, int preproNormals,
 }
 
 void Draw_ScalarLine(Post_View * View, int preproNormals,
-                     double ValMin, double ValMax, double Raise[3][8],
+                     double ValMin, double ValMax,
                      double *X, double *Y, double *Z, double *V)
 {
-  int i, k, nb = 0;
+  int nb = 0;
   double d;
   double Xp[5], Yp[5], Zp[5], Val[5], value[5], thev;
   char Num[100];
@@ -282,8 +281,8 @@ void Draw_ScalarLine(Post_View * View, int preproNormals,
     View->Boundary--;
     int ts = View->TimeStep;
     View->TimeStep = 0;
-    Draw_ScalarPoint(View, 0, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &vv[0]);      //0
-    Draw_ScalarPoint(View, 0, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &vv[1]);      //1
+    Draw_ScalarPoint(View, 0, ValMin, ValMax, &X[0], &Y[0], &Z[0], &vv[0]);      //0
+    Draw_ScalarPoint(View, 0, ValMin, ValMax, &X[1], &Y[1], &Z[1], &vv[1]);      //1
     View->TimeStep = ts;
     View->Boundary++;
     return;
@@ -291,8 +290,10 @@ void Draw_ScalarLine(Post_View * View, int preproNormals,
 
   SaturateValues(View->SaturateValues, ValMin, ValMax, vv, Val, 2);
 
-  for(k = 0; k < 2; k++)
-    RaiseFill(k, Val[k], ValMin, Raise);
+  double Raise[3][8];
+  for(int i = 0; i < 3; i++)
+    for(int k = 0; k < 2; k++)
+      Raise[i][k] = View->Raise[i] * Val[k];
 
   if(View->ShowElement)
     Draw_ElementBoundary(LINE, View, X, Y, Z, Raise);
@@ -325,11 +326,9 @@ void Draw_ScalarLine(Post_View * View, int preproNormals,
         else {
           glBegin(GL_LINES);
           PaletteContinuous(View, ValMin, ValMax, Val[0]);
-          glVertex3d(X[0] + Raise[0][0], Y[0] + Raise[1][0],
-                     Z[0] + Raise[2][0]);
+          glVertex3d(X[0] + Raise[0][0], Y[0] + Raise[1][0], Z[0] + Raise[2][0]);
           PaletteContinuous(View, ValMin, ValMax, Val[1]);
-          glVertex3d(X[1] + Raise[0][1], Y[1] + Raise[1][1],
-                     Z[1] + Raise[2][1]);
+          glVertex3d(X[1] + Raise[0][1], Y[1] + Raise[1][1], Z[1] + Raise[2][1]);
           glEnd();
         }
       }
@@ -339,7 +338,7 @@ void Draw_ScalarLine(Post_View * View, int preproNormals,
 
     }
     else {
-      for(k = 0; k < View->NbIso; k++) {
+      for(int k = 0; k < View->NbIso; k++) {
         PaletteDiscrete(View, View->NbIso, k);
         if(View->IntervalsType == DRAW_POST_DISCRETE) {
           CutLine1D(X, Y, Z, &Val[0],
@@ -347,8 +346,9 @@ void Draw_ScalarLine(Post_View * View, int preproNormals,
                     View->GVFI(ValMin, ValMax, View->NbIso + 1, k + 1),
                     Xp, Yp, Zp, &nb, value);
           if(nb == 2) {
-            for(i = 0; i < 2; i++)
-              RaiseFill(i, value[i], ValMin, Raise);
+	    for(int i = 0; i < 3; i++)
+	      for(int l = 0; l < 2; l++)
+		Raise[i][l] = View->Raise[i] * value[l];
             Draw_Line(View->LineType, View->LineWidth, Xp, Yp, Zp, Raise, View->Light);
           }
         }
@@ -356,7 +356,8 @@ void Draw_ScalarLine(Post_View * View, int preproNormals,
           thev = View->GVFI(ValMin, ValMax, View->NbIso, k);
           CutLine0D(X, Y, Z, &Val[0], thev, Xp, Yp, Zp, &nb);
           if(nb) {
-            RaiseFill(0, thev, ValMin, Raise);
+	    for(int i = 0; i < 3; i++)
+	      Raise[i][0] = View->Raise[i] * thev;
             Draw_Point(View->PointType, View->PointSize, Xp, Yp, Zp, Raise, View->Light);
           }
         }
@@ -367,10 +368,10 @@ void Draw_ScalarLine(Post_View * View, int preproNormals,
 }
 
 void Draw_ScalarTriangle(Post_View * View, int preproNormals,
-                         double ValMin, double ValMax, double Raise[3][8],
+                         double ValMin, double ValMax,
                          double *X, double *Y, double *Z, double *V)
 {
-  int i, k, nb = 0;
+  int nb = 0;
   double d;
   double x1x0, y1y0, z1z0, x2x0, y2y0, z2z0, nn[3], norms[9];
   double Xp[5], Yp[5], Zp[5], Val[3], value[5], thev;
@@ -382,10 +383,10 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
     View->Boundary--;
     int ts = View->TimeStep;
     View->TimeStep = 0;
-    Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &vv[0]);       //01
-    Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &vv[1]);       //12
+    Draw_ScalarLine(View, 0, ValMin, ValMax, &X[0], &Y[0], &Z[0], &vv[0]);       //01
+    Draw_ScalarLine(View, 0, ValMin, ValMax, &X[1], &Y[1], &Z[1], &vv[1]);       //12
     REORDER2(0, 2);
-    Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);   //02
+    Draw_ScalarLine(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);   //02
     View->TimeStep = ts;
     View->Boundary++;
     return;
@@ -393,8 +394,10 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
 
   SaturateValues(View->SaturateValues, ValMin, ValMax, vv, Val, 3);
 
-  for(k = 0; k < 3; k++)
-    RaiseFill(k, Val[k], ValMin, Raise);
+  double Raise[3][8];
+  for(int i = 0; i < 3; i++)
+    for(int k = 0; k < 3; k++)
+      Raise[i][k] = View->Raise[i] * Val[k];
 
   if(View->Light) {
 
@@ -410,14 +413,14 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
 
     if(View->SmoothNormals) {
       if(preproNormals) {
-        for(i = 0; i < 3; i++) {
+        for(int i = 0; i < 3; i++) {
           View->add_normal(X[i] + Raise[0][i], Y[i] + Raise[1][i],
                            Z[i] + Raise[2][i], nn[0], nn[1], nn[2]);
         }
         return;
       }
       else {
-        for(i = 0; i < 3; i++) {
+        for(int i = 0; i < 3; i++) {
           norms[3 * i] = nn[0];
           norms[3 * i + 1] = nn[1];
           norms[3 * i + 2] = nn[2];
@@ -432,7 +435,7 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
       }
     }
     else {
-      for(i = 0; i < 3; i++) {
+      for(int i = 0; i < 3; i++) {
         norms[3 * i] = nn[0];
         norms[3 * i + 1] = nn[1];
         norms[3 * i + 2] = nn[2];
@@ -456,12 +459,9 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
     if(d >= ValMin && d <= ValMax) {
       PaletteContinuous(View, ValMin, ValMax, d);
       sprintf(Num, View->Format, d);
-      glRasterPos3d((X[0] + Raise[0][0] + X[1] + Raise[0][1] + X[2] +
-                     Raise[0][2]) / 3.,
-                    (Y[0] + Raise[1][0] + Y[1] + Raise[1][1] + Y[2] +
-                     Raise[1][2]) / 3.,
-                    (Z[0] + Raise[2][0] + Z[1] + Raise[2][1] + Z[2] +
-                     Raise[2][2]) / 3.);
+      glRasterPos3d((X[0] + Raise[0][0] + X[1] + Raise[0][1] + X[2] + Raise[0][2]) / 3.,
+                    (Y[0] + Raise[1][0] + Y[1] + Raise[1][1] + Y[2] + Raise[1][2]) / 3.,
+                    (Z[0] + Raise[2][0] + Z[1] + Raise[2][1] + Z[2] + Raise[2][2]) / 3.);
       Draw_String(Num);
     }
 
@@ -478,34 +478,31 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
         glBegin(GL_TRIANGLES);
         PaletteContinuous(View, ValMin, ValMax, Val[0]);
         glNormal3dv(&norms[0]);
-        glVertex3d(X[0] + Raise[0][0], Y[0] + Raise[1][0],
-                   Z[0] + Raise[2][0]);
+        glVertex3d(X[0] + Raise[0][0], Y[0] + Raise[1][0], Z[0] + Raise[2][0]);
         PaletteContinuous(View, ValMin, ValMax, Val[1]);
         glNormal3dv(&norms[3]);
-        glVertex3d(X[1] + Raise[0][1], Y[1] + Raise[1][1],
-                   Z[1] + Raise[2][1]);
+        glVertex3d(X[1] + Raise[0][1], Y[1] + Raise[1][1], Z[1] + Raise[2][1]);
         PaletteContinuous(View, ValMin, ValMax, Val[2]);
         glNormal3dv(&norms[6]);
-        glVertex3d(X[2] + Raise[0][2], Y[2] + Raise[1][2],
-                   Z[2] + Raise[2][2]);
+        glVertex3d(X[2] + Raise[0][2], Y[2] + Raise[1][2], Z[2] + Raise[2][2]);
         glEnd();
       }
       else {
         CutTriangle2D(X, Y, Z, Val, ValMin, ValMax, Xp, Yp, Zp, &nb, value);
         if(nb >= 3) {
           glBegin(GL_POLYGON);
-          for(i = 0; i < nb; i++) {
+          for(int i = 0; i < nb; i++) {
             PaletteContinuous(View, ValMin, ValMax, value[i]);
-	    RaiseFill(i, value[i], ValMin, Raise);
-            glVertex3d(Xp[i] + Raise[0][i], Yp[i] + Raise[1][i],
-                       Zp[i] + Raise[2][i]);
+            glVertex3d(Xp[i] + View->Raise[0] * value[i], 
+		       Yp[i] + View->Raise[1] * value[i], 
+		       Zp[i] + View->Raise[2] * value[i]);
           }
           glEnd();
         }
       }
     }
     else {
-      for(k = 0; k < View->NbIso; k++) {
+      for(int k = 0; k < View->NbIso; k++) {
 	PaletteDiscrete(View, View->NbIso, k);
         if(View->IntervalsType == DRAW_POST_DISCRETE) {
           CutTriangle2D(X, Y, Z, Val,
@@ -513,12 +510,11 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
                         View->GVFI(ValMin, ValMax, View->NbIso + 1, k + 1),
                         Xp, Yp, Zp, &nb, value);
           if(nb >= 3) {
-            for(i = 0; i < nb; i++)
-              RaiseFill(i, value[i], ValMin, Raise);
             glBegin(GL_POLYGON);
-            for(i = 0; i < nb; i++)
-              glVertex3d(Xp[i] + Raise[0][i],
-                         Yp[i] + Raise[1][i], Zp[i] + Raise[2][i]);
+            for(int i = 0; i < nb; i++)
+              glVertex3d(Xp[i] + View->Raise[0] * value[i],
+			 Yp[i] + View->Raise[1] * value[i], 
+			 Zp[i] + View->Raise[2] * value[i]);
             glEnd();
           }
         }
@@ -526,8 +522,9 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
           thev = View->GVFI(ValMin, ValMax, View->NbIso, k);
           CutTriangle1D(X, Y, Z, Val, thev, Xp, Yp, Zp, &nb);
           if(nb == 2) {
-            for(i = 0; i < 2; i++)
-              RaiseFill(i, thev, ValMin, Raise);
+            for(int i = 0; i < 3; i++)
+	      for(int l = 0; l < 2; l++)
+		Raise[i][l] = View->Raise[i] * thev;
             Draw_Line(View->LineType, View->LineWidth, Xp, Yp, Zp, Raise, View->Light);
           }
         }
@@ -540,10 +537,9 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals,
 }
 
 void Draw_ScalarTetrahedron(Post_View * View, int preproNormals,
-                            double ValMin, double ValMax, double Raise[3][8],
+                            double ValMin, double ValMax,
                             double *X, double *Y, double *Z, double *V)
 {
-  int k;
   double d, Xp[4], Yp[4], Zp[4];
   char Num[100];
   double Val[4];
@@ -554,15 +550,15 @@ void Draw_ScalarTetrahedron(Post_View * View, int preproNormals,
     View->Boundary--;
     int ts = View->TimeStep;
     View->TimeStep = 0;
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &vv[0]);   //012
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &vv[1]);   //123
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, &X[0], &Y[0], &Z[0], &vv[0]);   //012
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, &X[1], &Y[1], &Z[1], &vv[1]);   //123
     REORDER3(0, 1, 3);
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);       //013
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);       //013
     Xp[1] = X[2];
     Yp[1] = Y[2];
     Zp[1] = Z[2];
     Val[1] = vv[2];
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);       //023
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);       //023
     View->TimeStep = ts;
     View->Boundary++;
     return;
@@ -570,8 +566,10 @@ void Draw_ScalarTetrahedron(Post_View * View, int preproNormals,
 
   SaturateValues(View->SaturateValues, ValMin, ValMax, vv, Val, 4);
 
-  for(k = 0; k < 4; k++)
-    RaiseFill(k, Val[k], ValMin, Raise);
+  double Raise[3][8];
+  for(int i = 0; i < 3; i++)
+    for(int k = 0; k < 4; k++)
+      Raise[i][k] = View->Raise[i] * Val[k];
 
   if(!preproNormals && View->ShowElement)
     Draw_ElementBoundary(TETRAHEDRON, View, X, Y, Z, Raise);
@@ -593,21 +591,21 @@ void Draw_ScalarTetrahedron(Post_View * View, int preproNormals,
 
   }
   else {
-    for(k = 0; k < View->NbIso; k++) {
+    for(int k = 0; k < View->NbIso; k++) {
       if(!preproNormals)
         PaletteDiscrete(View, View->NbIso, k);
       IsoSimplex(View, preproNormals, X, Y, Z, Val,
-                 View->GVFI(ValMin, ValMax, View->NbIso, k), Raise);
+                 View->GVFI(ValMin, ValMax, View->NbIso, k));
     }
 
   }
 }
 
 void Draw_ScalarQuadrangle(Post_View * View, int preproNormals,
-                           double ValMin, double ValMax, double Raise[3][8],
+                           double ValMin, double ValMax,
                            double *X, double *Y, double *Z, double *V)
 {
-  int k, ts, show = 0;
+  int ts, show = 0;
   double Val[4], Xp[4], Yp[4], Zp[4];
   double *vv = &V[4 * View->TimeStep];
 
@@ -616,11 +614,11 @@ void Draw_ScalarQuadrangle(Post_View * View, int preproNormals,
 
   if(!preproNormals && View->Boundary > 0) {
     View->Boundary--;
-    Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, &X[0], &Y[0], &Z[0], &vv[0]);       //01
-    Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, &X[1], &Y[1], &Z[1], &vv[1]);       //12
-    Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, &X[2], &Y[2], &Z[2], &vv[2]);       //23
+    Draw_ScalarLine(View, 0, ValMin, ValMax, &X[0], &Y[0], &Z[0], &vv[0]);       //01
+    Draw_ScalarLine(View, 0, ValMin, ValMax, &X[1], &Y[1], &Z[1], &vv[1]);       //12
+    Draw_ScalarLine(View, 0, ValMin, ValMax, &X[2], &Y[2], &Z[2], &vv[2]);       //23
     REORDER2(0, 3);
-    Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);   //03
+    Draw_ScalarLine(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);   //03
     View->TimeStep = ts;
     View->Boundary++;
     return;
@@ -631,24 +629,26 @@ void Draw_ScalarQuadrangle(Post_View * View, int preproNormals,
 
   if(!preproNormals && show) {
     SaturateValues(View->SaturateValues, ValMin, ValMax, vv, Val, 4);
-    for(k = 0; k < 4; k++)
-      RaiseFill(k, Val[k], ValMin, Raise);
+    double Raise[3][8];
+    for(int i = 0; i < 3; i++)
+      for(int k = 0; k < 4; k++)
+	Raise[i][k] = View->Raise[i] * Val[k];
     Draw_ElementBoundary(QUADRANGLE, View, X, Y, Z, Raise);
   }
 
-  Draw_ScalarTriangle(View, preproNormals, ValMin, ValMax, Raise, X, Y, Z, vv); //012
+  Draw_ScalarTriangle(View, preproNormals, ValMin, ValMax, X, Y, Z, vv); //012
   REORDER3(0, 2, 3);
-  Draw_ScalarTriangle(View, preproNormals, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);     //023
+  Draw_ScalarTriangle(View, preproNormals, ValMin, ValMax, Xp, Yp, Zp, Val);     //023
 
   View->TimeStep = ts;
   View->ShowElement = show;
 }
 
 void Draw_ScalarHexahedron(Post_View * View, int preproNormals,
-                           double ValMin, double ValMax, double Raise[3][8],
+                           double ValMin, double ValMax,
                            double *X, double *Y, double *Z, double *V)
 {
-  int k, ts, show = 0;
+  int ts, show = 0;
   double Val[8], Xp[8], Yp[8], Zp[8];
   double *vv = &V[8 * View->TimeStep];
 
@@ -658,16 +658,16 @@ void Draw_ScalarHexahedron(Post_View * View, int preproNormals,
   if(!preproNormals && View->Boundary > 0) {
     View->Boundary--;
     REORDER4(0, 1, 5, 4);
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);     //0154
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);     //0154
     REORDER4(0, 3, 2, 1);
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);     //0321
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);     //0321
     REORDER4(0, 4, 7, 3);
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);     //0473
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);     //0473
     REORDER4(1, 2, 6, 5);
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);     //1265
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);     //1265
     REORDER4(2, 3, 7, 6);
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);     //2376
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, &X[4], &Y[4], &Z[4], &vv[4]); //4567
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);     //2376
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, &X[4], &Y[4], &Z[4], &vv[4]); //4567
     View->TimeStep = ts;
     View->Boundary++;
     return;
@@ -678,27 +678,27 @@ void Draw_ScalarHexahedron(Post_View * View, int preproNormals,
 
   if(!preproNormals && show) {
     SaturateValues(View->SaturateValues, ValMin, ValMax, vv, Val, 8);
-    for(k = 0; k < 8; k++)
-      RaiseFill(k, Val[k], ValMin, Raise);
+    double Raise[3][8];
+    for(int i = 0; i < 3; i++)
+      for(int k = 0; k < 8; k++)
+	Raise[i][k] = View->Raise[i] * Val[k];
     Draw_ElementBoundary(HEXAHEDRON, View, X, Y, Z, Raise);
   }
 
   REORDER6(0, 1, 3, 4, 5, 7);
-  Draw_ScalarPrism(View, preproNormals, ValMin, ValMax, Raise, Xp, Yp, Zp,
-                   Val);
+  Draw_ScalarPrism(View, preproNormals, ValMin, ValMax, Xp, Yp, Zp, Val);
   REORDER6(1, 2, 3, 5, 6, 7);
-  Draw_ScalarPrism(View, preproNormals, ValMin, ValMax, Raise, Xp, Yp, Zp,
-                   Val);
+  Draw_ScalarPrism(View, preproNormals, ValMin, ValMax, Xp, Yp, Zp, Val);
 
   View->TimeStep = ts;
   View->ShowElement = show;
 }
 
 void Draw_ScalarPrism(Post_View * View, int preproNormals,
-                      double ValMin, double ValMax, double Raise[3][8],
+                      double ValMin, double ValMax,
                       double *X, double *Y, double *Z, double *V)
 {
-  int k, ts, show = 0;
+  int ts, show = 0;
   double Val[6], Xp[6], Yp[6], Zp[6];
   double *vv = &V[6 * View->TimeStep];
 
@@ -708,15 +708,14 @@ void Draw_ScalarPrism(Post_View * View, int preproNormals,
   if(!preproNormals && View->Boundary > 0) {
     View->Boundary--;
     REORDER4(0, 1, 4, 3);
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);
     REORDER3(0, 2, 1);
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);
     REORDER4(0, 3, 5, 2);
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);
     REORDER4(1, 2, 5, 4);
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, &X[3], &Y[3], &Z[3],
-                        &V[3]);
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Xp, Yp, Zp, Val);
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, &X[3], &Y[3], &Z[3], &V[3]);
     View->TimeStep = ts;
     View->Boundary++;
     return;
@@ -727,23 +726,25 @@ void Draw_ScalarPrism(Post_View * View, int preproNormals,
 
   if(!preproNormals && show) {
     SaturateValues(View->SaturateValues, ValMin, ValMax, vv, Val, 6);
-    for(k = 0; k < 6; k++)
-      RaiseFill(k, Val[k], ValMin, Raise);
+    double Raise[3][8];
+    for(int i = 0; i < 3; i++)
+      for(int k = 0; k < 6; k++)
+	Raise[i][k] = View->Raise[i] * Val[k];
     Draw_ElementBoundary(PRISM, View, X, Y, Z, Raise);
   }
 
-  Draw_ScalarTetrahedron(View, preproNormals, ValMin, ValMax, Raise, X, Y, Z, vv); //0123
+  Draw_ScalarTetrahedron(View, preproNormals, ValMin, ValMax, X, Y, Z, vv); //0123
   REORDER4(3, 4, 5, 2);
-  Draw_ScalarTetrahedron(View, preproNormals, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);  //3452
+  Draw_ScalarTetrahedron(View, preproNormals, ValMin, ValMax, Xp, Yp, Zp, Val);  //3452
   REORDER4(1, 2, 4, 3);
-  Draw_ScalarTetrahedron(View, preproNormals, ValMin, ValMax, Raise, Xp, Yp, Zp, Val);  //1243
+  Draw_ScalarTetrahedron(View, preproNormals, ValMin, ValMax, Xp, Yp, Zp, Val);  //1243
 
   View->TimeStep = ts;
   View->ShowElement = show;
 }
 
 void Draw_ScalarPyramid(Post_View * View, int preproNormals,
-                        double ValMin, double ValMax, double Raise[3][8],
+                        double ValMin, double ValMax,
                         double *X, double *Y, double *Z, double *V)
 {
   static int error = 0;
@@ -756,10 +757,10 @@ void Draw_ScalarPyramid(Post_View * View, int preproNormals,
 // Vector Elements
 
 void Draw_VectorElement(int type, Post_View * View,
-                        double ValMin, double ValMax, double Raise[3][8],
+                        double ValMin, double ValMax, 
                         double *X, double *Y, double *Z, double *V)
 {
-  int j, k, nbnod = 0;
+  int nbnod = 0;
   double fact, xx[8], yy[8], zz[8], xc = 0., yc = 0., zc = 0.;
   double Val[8][3], d[8];
   double dx = 0., dy = 0., dz = 0., dd;
@@ -792,20 +793,22 @@ void Draw_VectorElement(int type, Post_View * View,
     break;
   }
 
-  for(k = 0; k < nbnod; k++) {
+  for(int k = 0; k < nbnod; k++) {
     Val[k][0] = V[3 * nbnod * View->TimeStep + 3 * k];
     Val[k][1] = V[3 * nbnod * View->TimeStep + 3 * k + 1];
     Val[k][2] = V[3 * nbnod * View->TimeStep + 3 * k + 2];
-    d[k] =
-      sqrt(Val[k][0] * Val[k][0] + Val[k][1] * Val[k][1] +
-           Val[k][2] * Val[k][2]);
-    RaiseFill(k, d[k], ValMin, Raise);
+    d[k] = sqrt(Val[k][0] * Val[k][0] + Val[k][1] * Val[k][1] +	Val[k][2] * Val[k][2]);
   }
 
+  double Raise[3][8];
+  for(int i = 0; i < 3; i++)
+    for(int k = 0; k < nbnod; k++)
+      Raise[i][k] = View->Raise[i] * d[k];
+
   if(View->VectorType == DRAW_POST_DISPLACEMENT) {
 
     fact = View->DisplacementFactor;
-    for(k = 0; k < nbnod; k++) {
+    for(int k = 0; k < nbnod; k++) {
       xx[k] = X[k] + fact * Val[k][0] + Raise[0][k];
       yy[k] = Y[k] + fact * Val[k][1] + Raise[1][k];
       zz[k] = Z[k] + fact * Val[k][2] + Raise[2][k];
@@ -815,7 +818,7 @@ void Draw_VectorElement(int type, Post_View * View,
     View->TimeStep = 0;
     switch (type) {
     case POINT:
-      Draw_ScalarPoint(View, 0, ValMin, ValMax, Raise, xx, yy, zz, d);
+      Draw_ScalarPoint(View, 0, ValMin, ValMax, xx, yy, zz, d);
       if(ts) {  //draw trajectory
         if(View->LineType) {
           double dx2, dy2, dz2, XX[2], YY[2], ZZ[2];
@@ -823,7 +826,7 @@ void Draw_VectorElement(int type, Post_View * View,
 	  Raise[0][1] = Raise[0][0];
 	  Raise[1][1] = Raise[1][0];
 	  Raise[2][1] = Raise[2][0];
-          for(j = 0; j < ts; j++) {
+          for(int j = 0; j < ts; j++) {
             dx = V[3 * (ts - j)];
             dy = V[3 * (ts - j) + 1];
             dz = V[3 * (ts - j) + 2];
@@ -844,7 +847,7 @@ void Draw_VectorElement(int type, Post_View * View,
         }
         else {
           glBegin(GL_LINE_STRIP);
-          for(j = 0; j < ts + 1; j++) {
+          for(int j = 0; j < ts + 1; j++) {
             dx = V[3 * (ts - j)];
             dy = V[3 * (ts - j) + 1];
             dz = V[3 * (ts - j) + 2];
@@ -859,25 +862,25 @@ void Draw_VectorElement(int type, Post_View * View,
       }
       break;
     case LINE:
-      Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, xx, yy, zz, d);
+      Draw_ScalarLine(View, 0, ValMin, ValMax, xx, yy, zz, d);
       break;
     case TRIANGLE:
-      Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, xx, yy, zz, d);
+      Draw_ScalarTriangle(View, 0, ValMin, ValMax, xx, yy, zz, d);
       break;
     case TETRAHEDRON:
-      Draw_ScalarTetrahedron(View, 0, ValMin, ValMax, Raise, xx, yy, zz, d);
+      Draw_ScalarTetrahedron(View, 0, ValMin, ValMax, xx, yy, zz, d);
       break;
     case QUADRANGLE:
-      Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, xx, yy, zz, d);
+      Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, xx, yy, zz, d);
       break;
     case HEXAHEDRON:
-      Draw_ScalarHexahedron(View, 0, ValMin, ValMax, Raise, xx, yy, zz, d);
+      Draw_ScalarHexahedron(View, 0, ValMin, ValMax, xx, yy, zz, d);
       break;
     case PRISM:
-      Draw_ScalarPrism(View, 0, ValMin, ValMax, Raise, xx, yy, zz, d);
+      Draw_ScalarPrism(View, 0, ValMin, ValMax, xx, yy, zz, d);
       break;
     case PYRAMID:
-      Draw_ScalarPyramid(View, 0, ValMin, ValMax, Raise, xx, yy, zz, d);
+      Draw_ScalarPyramid(View, 0, ValMin, ValMax, xx, yy, zz, d);
       break;
     }
     View->TimeStep = ts;
@@ -889,7 +892,7 @@ void Draw_VectorElement(int type, Post_View * View,
 
   if(View->ArrowLocation == DRAW_POST_LOCATE_COG ||
      View->IntervalsType == DRAW_POST_NUMERIC) {
-    for(k = 0; k < nbnod; k++) {
+    for(int k = 0; k < nbnod; k++) {
       dx += Val[k][0];
       xc += X[k] + Raise[0][k];
       dy += Val[k][1];
@@ -928,7 +931,8 @@ void Draw_VectorElement(int type, Post_View * View,
           dy *= dd;
           dz *= dd;
         }
-        RaiseFill(0, dd, ValMin, Raise);
+	for(int i = 0; i < 3; i++)
+	  Raise[i][0] = View->Raise[i] * dd;
         Draw_Vector(View->VectorType, View->IntervalsType != DRAW_POST_ISO,
 		    View->ArrowRelHeadRadius, View->ArrowRelStemLength,
 		    View->ArrowRelStemRadius, xc, yc, zc, 
@@ -937,7 +941,7 @@ void Draw_VectorElement(int type, Post_View * View,
     }
   }
   else {
-    for(k = 0; k < nbnod; k++) {
+    for(int k = 0; k < nbnod; k++) {
       if(d[k] != 0.0 && d[k] >= ValMin && d[k] <= ValMax) {
 	if(View->IntervalsType == DRAW_POST_CONTINUOUS)
 	  PaletteContinuous(View, ValMin, ValMax, d[k]);
@@ -954,7 +958,8 @@ void Draw_VectorElement(int type, Post_View * View,
           Val[k][1] *= d[k];
           Val[k][2] *= d[k];
         }
-        RaiseFill(0, d[k], ValMin, Raise);
+	for(int i = 0; i < 3; i++)
+	  Raise[i][0] = View->Raise[i] * d[k];
         Draw_Vector(View->VectorType, View->IntervalsType != DRAW_POST_ISO,
 		    View->ArrowRelHeadRadius, View->ArrowRelStemLength,
 		    View->ArrowRelStemRadius, X[k], Y[k], Z[k], 
@@ -965,48 +970,48 @@ void Draw_VectorElement(int type, Post_View * View,
   }
 }
 
-#define ARGS Post_View *View, 					\
-             double ValMin, double ValMax, double Raise[3][8],	\
+#define ARGS Post_View *View, 			\
+             double ValMin, double ValMax, 	\
              double *X, double *Y, double *Z, double *V
 
 void Draw_VectorPoint(ARGS)
 {
-  Draw_VectorElement(POINT, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_VectorElement(POINT, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_VectorLine(ARGS)
 {
-  Draw_VectorElement(LINE, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_VectorElement(LINE, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_VectorTriangle(ARGS)
 {
-  Draw_VectorElement(TRIANGLE, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_VectorElement(TRIANGLE, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_VectorTetrahedron(ARGS)
 {
-  Draw_VectorElement(TETRAHEDRON, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_VectorElement(TETRAHEDRON, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_VectorQuadrangle(ARGS)
 {
-  Draw_VectorElement(QUADRANGLE, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_VectorElement(QUADRANGLE, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_VectorHexahedron(ARGS)
 {
-  Draw_VectorElement(HEXAHEDRON, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_VectorElement(HEXAHEDRON, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_VectorPrism(ARGS)
 {
-  Draw_VectorElement(PRISM, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_VectorElement(PRISM, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_VectorPyramid(ARGS)
 {
-  Draw_VectorElement(PYRAMID, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_VectorElement(PYRAMID, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 #undef ARGS
@@ -1014,7 +1019,7 @@ void Draw_VectorPyramid(ARGS)
 // Tensor Elements
 
 void Draw_TensorElement(int type, Post_View * View,
-                        double ValMin, double ValMax, double Raise[3][8],
+                        double ValMin, double ValMax,
                         double *X, double *Y, double *Z, double *V)
 {
   int nbnod = 0;
@@ -1061,76 +1066,76 @@ void Draw_TensorElement(int type, Post_View * View,
 
   switch (type) {
   case POINT:
-    Draw_ScalarPoint(View, 0, ValMin, ValMax, Raise, X, Y, Z, V_VonMises);
+    Draw_ScalarPoint(View, 0, ValMin, ValMax, X, Y, Z, V_VonMises);
     break;
   case LINE:
-    Draw_ScalarLine(View, 0, ValMin, ValMax, Raise, X, Y, Z, V_VonMises);
+    Draw_ScalarLine(View, 0, ValMin, ValMax, X, Y, Z, V_VonMises);
     break;
   case TRIANGLE:
-    Draw_ScalarTriangle(View, 0, ValMin, ValMax, Raise, X, Y, Z, V_VonMises);
+    Draw_ScalarTriangle(View, 0, ValMin, ValMax, X, Y, Z, V_VonMises);
     break;
   case QUADRANGLE:
-    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, Raise, X, Y, Z, V_VonMises);
+    Draw_ScalarQuadrangle(View, 0, ValMin, ValMax, X, Y, Z, V_VonMises);
     break;
   case TETRAHEDRON:
-    Draw_ScalarTetrahedron(View, 0, ValMin, ValMax, Raise, X, Y, Z, V_VonMises);
+    Draw_ScalarTetrahedron(View, 0, ValMin, ValMax, X, Y, Z, V_VonMises);
     break;
   case HEXAHEDRON:
-    Draw_ScalarHexahedron(View, 0, ValMin, ValMax, Raise, X, Y, Z, V_VonMises);
+    Draw_ScalarHexahedron(View, 0, ValMin, ValMax, X, Y, Z, V_VonMises);
     break;
   case PRISM:
-    Draw_ScalarPrism(View, 0, ValMin, ValMax, Raise, X, Y, Z, V_VonMises);
+    Draw_ScalarPrism(View, 0, ValMin, ValMax, X, Y, Z, V_VonMises);
     break;
   case PYRAMID:
-    Draw_ScalarPyramid(View, 0, ValMin, ValMax, Raise, X, Y, Z, V_VonMises);
+    Draw_ScalarPyramid(View, 0, ValMin, ValMax, X, Y, Z, V_VonMises);
     break;
   }
 
   View->TimeStep = ts;
 }
 
-#define ARGS Post_View *View, 					\
-             double ValMin, double ValMax, double Raise[3][8],	\
+#define ARGS Post_View *View, 			\
+             double ValMin, double ValMax, 	\
              double *X, double *Y, double *Z, double *V
 
 void Draw_TensorPoint(ARGS)
 {
-  Draw_TensorElement(POINT, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_TensorElement(POINT, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_TensorLine(ARGS)
 {
-  Draw_TensorElement(LINE, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_TensorElement(LINE, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_TensorTriangle(ARGS)
 {
-  Draw_TensorElement(TRIANGLE, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_TensorElement(TRIANGLE, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_TensorTetrahedron(ARGS)
 {
-  Draw_TensorElement(TETRAHEDRON, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_TensorElement(TETRAHEDRON, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_TensorQuadrangle(ARGS)
 {
-  Draw_TensorElement(QUADRANGLE, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_TensorElement(QUADRANGLE, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_TensorHexahedron(ARGS)
 {
-  Draw_TensorElement(HEXAHEDRON, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_TensorElement(HEXAHEDRON, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_TensorPrism(ARGS)
 {
-  Draw_TensorElement(PRISM, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_TensorElement(PRISM, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 void Draw_TensorPyramid(ARGS)
 {
-  Draw_TensorElement(PYRAMID, View, ValMin, ValMax, Raise, X, Y, Z, V);
+  Draw_TensorElement(PYRAMID, View, ValMin, ValMax, X, Y, Z, V);
 }
 
 #undef ARGS
diff --git a/benchmarks/misc/animation.geo b/benchmarks/misc/animation.geo
index a97770746b88365401cb0724f2a1200761d59071..9afba2aecb8fee7b8fa71a2ec74386d42a387396 100644
--- a/benchmarks/misc/animation.geo
+++ b/benchmarks/misc/animation.geo
@@ -5,7 +5,6 @@ General.Color.Background = White ;
 General.Color.Foreground = Red ;
 
 View[0].IntervalsType = 2 ;
-View[0].RaiseZ = 0.1 ;
 
 For(1:300)
 
@@ -15,8 +14,6 @@ For(1:300)
   View[0].TimeStep += 
     (View[0].TimeStep < View[0].NbTimeStep-1) ? 1 : 0 ;
 
-  View[0].RaiseZ -= .01 ;
-
   Sleep 0.1;
   Draw;
 
diff --git a/tutorial/t8.geo b/tutorial/t8.geo
index 9d91c478f633dd6d1cc873315fe0b3078b4c9ec9..6fcb0ac47f86783044bc31becbcd2b5c24b02590 100644
--- a/tutorial/t8.geo
+++ b/tutorial/t8.geo
@@ -84,7 +84,7 @@ For num In {1:255}
 
   t = (View[v0].TimeStep < View[v0].NbTimeStep-1) ? t+1 : 0 ;
   
-  View[v0].RaiseZ += 0.01*t ;
+  View[v0].RaiseZ += 0.01/View[v0].Max * t ;
 
   If (num == 3)
     // We want to create 320x240 frames when num == 3: