From 2df52aabf180b02ae5ba53be574b448f47d8222a Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sat, 11 May 2013 12:02:48 +0000
Subject: [PATCH] fixes

---
 Common/OS.cpp                  |   8 +-
 Geo/GeoInterpolation.cpp       |  18 +--
 Geo/gmshLevelset.cpp           | 239 +++++++++++++++------------------
 Geo/gmshLevelset.h             |  56 ++++----
 Mesh/BDS.h                     |  58 ++++----
 Post/PViewAsSimpleFunction.cpp |   2 +-
 Post/PViewAsSimpleFunction.h   |   2 +-
 7 files changed, 185 insertions(+), 198 deletions(-)

diff --git a/Common/OS.cpp b/Common/OS.cpp
index 6631d84e23..63d68f4b04 100644
--- a/Common/OS.cpp
+++ b/Common/OS.cpp
@@ -214,14 +214,14 @@ int SystemCall(const std::string &command, bool blocking)
     args = command.substr(pos, command.size() - pos);
   }
   else exe = command;
-  int s = exe.size();
-  if(s > 3 && 
+  int s = (int)exe.size();
+  if(s > 3 &&
      (exe[s-3] == '.') &&
      (exe[s-2] == 'p' || exe[s-2] == 'P') &&
      (exe[s-1] == 'y' || exe[s-1] == 'Y')){
-    Msg::Info("Shell opening '%s' with arguments '%s'", 
+    Msg::Info("Shell opening '%s' with arguments '%s'",
 	      exe.c_str(), args.c_str());
-    ShellExecute(NULL, (char*)"open", (char*)exe.c_str(), 
+    ShellExecute(NULL, (char*)"open", (char*)exe.c_str(),
 		 (char*)args.c_str(), NULL, 0);
   }
   else{
diff --git a/Geo/GeoInterpolation.cpp b/Geo/GeoInterpolation.cpp
index 96deac1a5f..7b662acb70 100644
--- a/Geo/GeoInterpolation.cpp
+++ b/Geo/GeoInterpolation.cpp
@@ -250,13 +250,13 @@ Vertex InterpolateCurve(Curve *c, double u, int derivee)
   Vertex V;
 
   if(derivee==1) {
-    switch (c->Typ) {
-      //    case MSH_SEGM_BSPLN:
-      //    case MSH_SEGM_BEZIER:
-      //      V = InterpolateUBS(c, u, 1);
-      //      V.u = u;
-      //      break;
-    default :
+    // switch (c->Typ) {
+    // case MSH_SEGM_BSPLN:
+    // case MSH_SEGM_BEZIER:
+    //   V = InterpolateUBS(c, u, 1);
+    //   V.u = u;
+    //   break;
+    // default :
       double eps1 = (u == 0) ? 0 : 1.e-5;
       double eps2 = (u == 1) ? 0 : 1.e-5;
       Vertex D[2];
@@ -266,8 +266,8 @@ Vertex InterpolateCurve(Curve *c, double u, int derivee)
       V.Pos.Y = (D[1].Pos.Y - D[0].Pos.Y) / (eps1 + eps2);
       V.Pos.Z = (D[1].Pos.Z - D[0].Pos.Z) / (eps1 + eps2);
       V.u = u;
-      break;
-    }
+    //   break;
+    // }
     return V;
   }
 
diff --git a/Geo/gmshLevelset.cpp b/Geo/gmshLevelset.cpp
index 112a2589d3..657d563b95 100644
--- a/Geo/gmshLevelset.cpp
+++ b/Geo/gmshLevelset.cpp
@@ -80,7 +80,7 @@ int removeBadChildCells(cartesianBox<double> *parent)
             (j != J - 1 && !parent->activeCellExists(parent->getCellIndex(i, j + 1, k))) ||
             (k != 0 && !parent->activeCellExists(parent->getCellIndex(i, j, k - 1))) ||
             (k != K - 1 && !parent->activeCellExists(parent->getCellIndex(i, j, k + 1)))))
-            for(int ii = 0; ii < 8; ii++) child->eraseActiveCell(idx[ii]);
+          for(int ii = 0; ii < 8; ii++) child->eraseActiveCell(idx[ii]);
       }
   return removeBadChildCells(child);
 }
@@ -120,29 +120,29 @@ void computeLevelset(GModel *gm, cartesianBox<double> &box)
   std::vector<double> dist, localdist;
   std::vector<SPoint3> dummy;
   for (GModel::fiter fit = gm->firstFace(); fit != gm->lastFace(); fit++){
-   if((*fit)->geomType() == GEntity::DiscreteSurface){
+    if((*fit)->geomType() == GEntity::DiscreteSurface){
       for(unsigned int k = 0; k < (*fit)->getNumMeshElements(); k++){
-	  std::vector<double> iDistances;
-	  std::vector<SPoint3> iClosePts;
-          std::vector<double> iDistancesE;
-	  MElement *e = (*fit)->getMeshElement(k);
-	  if(e->getType() == TYPE_TRI){
-	    MVertex *v1 = e->getVertex(0);
-	    MVertex *v2 = e->getVertex(1);
-	    MVertex *v3 = e->getVertex(2);
-	    SPoint3 p1(v1->x(),v1->y(),v1->z());
-	    SPoint3 p2(v2->x(),v2->y(),v2->z());
-	    SPoint3 p3(v3->x(),v3->y(),v3->z());
-	    //sign plus if in the direction of the normal
-	    signedDistancesPointsTriangle(localdist, dummy, nodes, p2, p1, p3);
-	  }
-	  if(dist.empty())
-	    dist = localdist;
-	  else{
-	    for (unsigned int j = 0; j < localdist.size(); j++){
-	      dist[j] = (fabs(dist[j]) < fabs(localdist[j])) ? dist[j] : localdist[j];
-	    }
-	  }
+        std::vector<double> iDistances;
+        std::vector<SPoint3> iClosePts;
+        std::vector<double> iDistancesE;
+        MElement *e = (*fit)->getMeshElement(k);
+        if(e->getType() == TYPE_TRI){
+          MVertex *v1 = e->getVertex(0);
+          MVertex *v2 = e->getVertex(1);
+          MVertex *v3 = e->getVertex(2);
+          SPoint3 p1(v1->x(),v1->y(),v1->z());
+          SPoint3 p2(v2->x(),v2->y(),v2->z());
+          SPoint3 p3(v3->x(),v3->y(),v3->z());
+          //sign plus if in the direction of the normal
+          signedDistancesPointsTriangle(localdist, dummy, nodes, p2, p1, p3);
+        }
+        if(dist.empty())
+          dist = localdist;
+        else{
+          for (unsigned int j = 0; j < localdist.size(); j++){
+            dist[j] = (fabs(dist[j]) < fabs(localdist[j])) ? dist[j] : localdist[j];
+          }
+        }
       }
     }
     else{
@@ -194,8 +194,8 @@ inline bool isPlanar(const double *pt1, const double *pt2, const double *pt3,
   return (n1[0] == n2[0] && n1[1] == n2[1] && n1[2] == n2[2]);
 }
 
-inline double evalRadialFnDer (int p, int index, double dx, double dy, double dz,
-                               double ep)
+inline double evalRadialFnDer(int p, int index, double dx, double dy, double dz,
+                              double ep)
 {
   double r2 = dx*dx+dy*dy+dz*dz; //r^2
   switch (index) {
@@ -224,9 +224,9 @@ inline void printNodes(fullMatrix<double> &myNodes, fullMatrix<double> &surf)
   for(int itv = 1; itv != myNodes.size1(); ++itv){
     fprintf(xyz,"SP(%g,%g,%g){%g};\n", myNodes(itv,0), myNodes(itv,1),
             myNodes(itv,2), surf(itv,0));
- }
- fprintf(xyz,"};\n");
- fclose(xyz);
+  }
+  fprintf(xyz,"};\n");
+  fclose(xyz);
 }
 
 // extrude a list of the primitive levelsets with a "Level-order traversal sequence"
@@ -314,30 +314,28 @@ gLevelset::gLevelset(const gLevelset &lv)
   tag_ = lv.tag_;
 }
 
-gLevelsetSphere::gLevelsetSphere (const double &x, const double &y, const double &z, const double &R, int tag=1)
+gLevelsetSphere::gLevelsetSphere(const double &x, const double &y, const double &z,
+                                 const double &R, int tag=1)
   : gLevelsetPrimitive(tag), xc(x), yc(y), zc(z), r(R)
 {
-_hasDerivatives = true;
+  _hasDerivatives = true;
 }
 
-void gLevelsetSphere::gradient (double x, double y, double z,
-           double & dfdx, double & dfdy, double & dfdz) const
+void gLevelsetSphere::gradient(double x, double y, double z,
+                               double & dfdx, double & dfdy, double & dfdz) const
 {
-
   const double xx = x-xc, yy = y-yc, zz = z-zc, dist = sqrt(xx*xx+yy*yy+zz*zz);
 
   dfdx = xx/dist;
   dfdy = yy/dist;
   dfdz = zz/dist;
-
 }
 
-void gLevelsetSphere::hessian (double x, double y, double z,
-          double & dfdxx, double & dfdxy, double & dfdxz,
-          double & dfdyx, double & dfdyy, double & dfdyz,
-          double & dfdzx, double & dfdzy, double & dfdzz) const
+void gLevelsetSphere::hessian(double x, double y, double z,
+                              double & dfdxx, double & dfdxy, double & dfdxz,
+                              double & dfdyx, double & dfdyy, double & dfdyz,
+                              double & dfdzx, double & dfdzy, double & dfdzz) const
 {
-
   const double xx = x-xc, yy = y-yc, zz = z-zc;
   const double distSq = xx*xx+yy*yy, fact = 1./(distSq*sqrt(distSq));
 
@@ -350,10 +348,8 @@ void gLevelsetSphere::hessian (double x, double y, double z,
   dfdzx = dfdxz;
   dfdzy = dfdyz;
   dfdzz = (xx*xx+yy*yy)*fact;
-
 }
 
-
 gLevelsetPlane::gLevelsetPlane(const std::vector<double>  &pt,
                                const std::vector<double> &norm, int tag)
   : gLevelsetPrimitive(tag)
@@ -532,7 +528,7 @@ gLevelsetPoints::gLevelsetPoints(const gLevelsetPoints &lv)
   points = lv.points;
 }
 
-double gLevelsetPoints::operator()(const double x, const double y, const double z) const
+double gLevelsetPoints::operator()(double x, double y, double z) const
 {
   if(mapP.empty()) printf("Levelset Points : call computeLS() before calling operator()\n");
 
@@ -592,7 +588,7 @@ void gLevelsetQuadric::Ax(const double x[3], double res[3], double fact)
   for(int i = 0; i < 3; i++){
     res[i] = 0.;
     for(int j = 0; j < 3; j++){
-    res[i] += A[i][j] * x[j] * fact;
+      res[i] += A[i][j] * x[j] * fact;
     }
   }
 }
@@ -673,9 +669,9 @@ void gLevelsetQuadric::computeRotationMatrix(const double dir1[3],
 {
   double norm = sqrt((dir1[1] * dir2[2] - dir1[2] * dir2[1]) *
                      (dir1[1] * dir2[2] - dir1[2] * dir2[1])
-                   + (dir1[2] * dir2[0] - dir1[0] * dir2[2]) *
+                     + (dir1[2] * dir2[0] - dir1[0] * dir2[2]) *
                      (dir1[2] * dir2[0] - dir1[0] * dir2[2])
-                   + (dir1[0] * dir2[1] - dir1[1] * dir2[0]) *
+                     + (dir1[0] * dir2[1] - dir1[1] * dir2[0]) *
                      (dir1[0] * dir2[1] - dir1[1] * dir2[0]));
   double n[3] = {1., 0., 0.};
   double ct = 1., st = 0.;
@@ -707,7 +703,7 @@ void gLevelsetQuadric::init()
   C = 0.;
 }
 
-double gLevelsetQuadric::operator()(const double x, const double y, const double z) const
+double gLevelsetQuadric::operator()(double x, double y, double z) const
 {
   return(A[0][0] * x * x + 2. * A[0][1] * x * y + 2. * A[0][2] * x * z + A[1][1] * y * y
          + 2. * A[1][2] * y * z + A[2][2] * z * z + B[0] * x + B[1] * y + B[2] * z + C);
@@ -729,7 +725,7 @@ gLevelsetShamrock::gLevelsetShamrock(double _xmid, double _ymid, double _zmid,
   }
 }
 
-double gLevelsetShamrock::operator() (const double x, const double y, const double z) const
+double gLevelsetShamrock::operator()(double x, double y, double z) const
 {
   // computing distance to pre-defined (sampled) iso-zero
   double dx,dy,xi,yi,d;
@@ -785,7 +781,7 @@ gLevelsetPopcorn::gLevelsetPopcorn(double _xc, double _yc, double _zc, double _r
   zc = _zc;
 }
 
-double gLevelsetPopcorn::operator() (const double x, const double y, const double z) const
+double gLevelsetPopcorn::operator() (double x, double y, double z) const
 {
   double s2 = (sigma)*(sigma);
   double r = sqrt((x-xc)*(x-xc)+(y-yc)*(y-yc)+(z-zc)*(z-zc));
@@ -811,22 +807,22 @@ double gLevelsetPopcorn::operator() (const double x, const double y, const doubl
 gLevelsetMathEval::gLevelsetMathEval(std::string f, int tag)
   : gLevelsetPrimitive(tag)
 {
-    std::vector<std::string> expressions(1, f);
-    std::vector<std::string> variables(3);
-    variables[0] = "x";
-    variables[1] = "y";
-    variables[2] = "z";
-    _expr = new mathEvaluator(expressions, variables);
+  std::vector<std::string> expressions(1, f);
+  std::vector<std::string> variables(3);
+  variables[0] = "x";
+  variables[1] = "y";
+  variables[2] = "z";
+  _expr = new mathEvaluator(expressions, variables);
 }
 
-double gLevelsetMathEval::operator() (const double x, const double y, const double z) const
+double gLevelsetMathEval::operator() (double x, double y, double z) const
 {
-    std::vector<double> values(3), res(1);
-    values[0] = x;
-    values[1] = y;
-    values[2] = z;
-    if(_expr->eval(values, res)) return res[0];
-    return 1.;
+  std::vector<double> values(3), res(1);
+  values[0] = x;
+  values[1] = y;
+  values[2] = z;
+  if(_expr->eval(values, res)) return res[0];
+  return 1.;
 }
 
 gLevelsetMathEvalAll::gLevelsetMathEvalAll(std::vector<std::string> expressions, int tag)
@@ -839,52 +835,50 @@ gLevelsetMathEvalAll::gLevelsetMathEvalAll(std::vector<std::string> expressions,
   variables[2] = "z";
   _expr = new mathEvaluator(expressions, variables);
 }
-double gLevelsetMathEvalAll::operator() (const double x, const double y, const double z) const
+
+double gLevelsetMathEvalAll::operator() (double x, double y, double z) const
 {
-    std::vector<double> values(3), res(13);
-    values[0] = x;
-    values[1] = y;
-    values[2] = z;
-    if(_expr->eval(values, res)) return res[0];
-    return 1.;
+  std::vector<double> values(3), res(13);
+  values[0] = x;
+  values[1] = y;
+  values[2] = z;
+  if(_expr->eval(values, res)) return res[0];
+  return 1.;
 }
-void gLevelsetMathEvalAll::gradient (double x, double y, double z,
-				     double & dfdx, double & dfdy, double & dfdz) const
+void gLevelsetMathEvalAll::gradient(double x, double y, double z,
+                                    double & dfdx, double & dfdy, double & dfdz) const
 {
-
-    std::vector<double> values(3), res(13);
-    values[0] = x;
-    values[1] = y;
-    values[2] = z;
-    if(_expr->eval(values, res)){
-      dfdx = res[1];
-      dfdy = res[2];
-      dfdz = res[3];
-    }
-
+  std::vector<double> values(3), res(13);
+  values[0] = x;
+  values[1] = y;
+  values[2] = z;
+  if(_expr->eval(values, res)){
+    dfdx = res[1];
+    dfdy = res[2];
+    dfdz = res[3];
+  }
 }
 
-void gLevelsetMathEvalAll::hessian (double x, double y, double z,
-				    double & dfdxx, double & dfdxy, double & dfdxz,
-				    double & dfdyx, double & dfdyy, double & dfdyz,
-				    double & dfdzx, double & dfdzy, double & dfdzz) const
-{
-
-   std::vector<double> values(3), res(13);
-    values[0] = x;
-    values[1] = y;
-    values[2] = z;
-    if(_expr->eval(values, res)){
-      dfdxx = res[4];
-      dfdxy = res[5];
-      dfdxz = res[6];
-      dfdyx = res[7];
-      dfdyy = res[8];
-      dfdyz = res[9];
-      dfdzx = res[10];
-      dfdzy = res[11];
-      dfdzz = res[12];
-    }
+void gLevelsetMathEvalAll::hessian(double x, double y, double z,
+                                   double & dfdxx, double & dfdxy, double & dfdxz,
+                                   double & dfdyx, double & dfdyy, double & dfdyz,
+                                   double & dfdzx, double & dfdzy, double & dfdzz) const
+{
+  std::vector<double> values(3), res(13);
+  values[0] = x;
+  values[1] = y;
+  values[2] = z;
+  if(_expr->eval(values, res)){
+    dfdxx = res[4];
+    dfdxy = res[5];
+    dfdxz = res[6];
+    dfdyx = res[7];
+    dfdyy = res[8];
+    dfdyz = res[9];
+    dfdzx = res[10];
+    dfdzy = res[11];
+    dfdzz = res[12];
+  }
 }
 
 #if defined(HAVE_ANN)
@@ -940,7 +934,7 @@ gLevelsetDistMesh::~gLevelsetDistMesh()
 
 }
 
-double gLevelsetDistMesh::operator () (const double x, const double y, const double z) const
+double gLevelsetDistMesh::operator () (double x, double y, double z) const
 {
   double point[3] = {x,y,z};
   _kdtree->annkSearch(point, _nbClose, _index, _dist);
@@ -963,7 +957,7 @@ double gLevelsetDistMesh::operator () (const double x, const double y, const dou
     SPoint3 p2(v2->x(), v2->y(), v2->z());
     SPoint3 pt;
     if ((*it)->getDim() == 1){
-       signedDistancePointLine(p1, p2,SPoint3(x,y,z),distance,pt);
+      signedDistancePointLine(p1, p2,SPoint3(x,y,z),distance,pt);
     }
     else if ((*it)->getDim() == 2){
       MVertex *v3 = (*it)->getVertex(2);
@@ -981,8 +975,6 @@ double gLevelsetDistMesh::operator () (const double x, const double y, const dou
 }
 #endif
 
-
-
 #if defined (HAVE_POST)
 gLevelsetPostView::gLevelsetPostView(int index, int tag)
   : gLevelsetPrimitive(tag), _viewIndex(index)
@@ -997,7 +989,7 @@ gLevelsetPostView::gLevelsetPostView(int index, int tag)
   }
 }
 
-double gLevelsetPostView::operator () (const double x, const double y, const double z) const
+double gLevelsetPostView::operator () (double x, double y, double z) const
 {
   if(!_octree) return 1.;
   double val = 1.;
@@ -1036,7 +1028,7 @@ gLevelsetEllipsoid::gLevelsetEllipsoid(const double *pt, const double *dir, cons
   translate(pt);
 }
 
-gLevelsetEllipsoid::gLevelsetEllipsoid (const gLevelsetEllipsoid& lv)
+gLevelsetEllipsoid::gLevelsetEllipsoid(const gLevelsetEllipsoid& lv)
   : gLevelsetQuadric(lv){}
 
 gLevelsetCone::gLevelsetCone(const double *pt, const double *dir, const double &angle,
@@ -1051,7 +1043,7 @@ gLevelsetCone::gLevelsetCone(const double *pt, const double *dir, const double &
   translate(pt);
 }
 
-gLevelsetCone::gLevelsetCone (const gLevelsetCone& lv)
+gLevelsetCone::gLevelsetCone(const gLevelsetCone& lv)
   : gLevelsetQuadric(lv){}
 
 gLevelsetGeneralQuadric::gLevelsetGeneralQuadric(const double *pt, const double *dir,
@@ -1071,7 +1063,7 @@ gLevelsetGeneralQuadric::gLevelsetGeneralQuadric(const double *pt, const double
   translate(pt);
 }
 
-gLevelsetGeneralQuadric::gLevelsetGeneralQuadric (const gLevelsetGeneralQuadric& lv)
+gLevelsetGeneralQuadric::gLevelsetGeneralQuadric(const gLevelsetGeneralQuadric& lv)
   : gLevelsetQuadric(lv){}
 
 gLevelsetTools::gLevelsetTools(const gLevelsetTools &lv) : gLevelset(lv)
@@ -1234,7 +1226,6 @@ gLevelsetConrod::gLevelsetConrod(const double *pt, const double *dir1,
 gLevelsetConrod::gLevelsetConrod(const gLevelsetConrod &lv)
   : gLevelsetImproved(lv){}
 
-
 // Level-set for NACA0012 airfoil, last coeff. modified for zero-thickness trailing edge
 // cf. http://en.wikipedia.org/wiki/NACA_airfoil
 gLevelsetNACA00::gLevelsetNACA00(double x0, double y0, double c, double t)
@@ -1243,8 +1234,7 @@ gLevelsetNACA00::gLevelsetNACA00(double x0, double y0, double c, double t)
   _hasDerivatives = true;
 }
 
-
-void gLevelsetNACA00::getClosestBndPoint(const double x, const double y, const double z,
+void gLevelsetNACA00::getClosestBndPoint(double x, double y, double z,
                                          double &xb, double &yb, double &curvRad, bool &in) const
 {
 
@@ -1267,7 +1257,7 @@ void gLevelsetNACA00::getClosestBndPoint(const double x, const double y, const d
     double dyb, ddyb;
     for (int it=0; it<maxIter; it++) {
       const double xbr = xtb/_c, sxbr = sqrt(xbr), xbr32 = xbr*sxbr,
-                    xbr2 = xbr*xbr, xbr3 = xbr2*xbr, xbr4 = xbr2*xbr2;
+        xbr2 = xbr*xbr, xbr3 = xbr2*xbr, xbr4 = xbr2*xbr2;
       ytb = fact*(0.2969*sxbr-0.1260*xbr-0.3516*xbr2+0.2843*xbr3-0.1036*xbr4);
       dyb = fact*(0.14845/sxbr-0.4144*xbr3+0.8529*xbr2-0.7032*xbr-0.126)/_c;
       ddyb = fact*(-0.074225/xbr32-1.2432*xbr2+1.7058*xbr-0.7032)/(_c*_c);
@@ -1285,13 +1275,10 @@ void gLevelsetNACA00::getClosestBndPoint(const double x, const double y, const d
     const double norm = sqrt(1.+dyb*dyb);
     curvRad = norm*norm*norm/fabs(ddyb);
   }
-
 }
 
-
-double gLevelsetNACA00::operator() (const double x, const double y, const double z) const
+double gLevelsetNACA00::operator() (double x, double y, double z) const
 {
-
   double xb, yb, curvRadb;
   bool in;
 
@@ -1299,14 +1286,11 @@ double gLevelsetNACA00::operator() (const double x, const double y, const double
   const double xx = x-xb, yy = y-yb, distSq = xx*xx+yy*yy;
 
   return in ? -sqrt(distSq) : sqrt(distSq);
-
 }
 
-
 void gLevelsetNACA00::gradient (double x, double y, double z,
-             double & dfdx, double & dfdy, double & dfdz) const
+                                double & dfdx, double & dfdy, double & dfdz) const
 {
-
   double xb, yb, curvRadb;
   bool in;
 
@@ -1317,17 +1301,13 @@ void gLevelsetNACA00::gradient (double x, double y, double z,
   dfdx = xx/dist;
   dfdy = yy/dist;
   dfdz = 0.;
-
 }
 
-
 void gLevelsetNACA00::hessian (double x, double y, double z,
-            double & dfdxx, double & dfdxy, double & dfdxz,
-            double & dfdyx, double & dfdyy, double & dfdyz,
-            double & dfdzx, double & dfdzy, double & dfdzz) const
+                               double & dfdxx, double & dfdxy, double & dfdxz,
+                               double & dfdyx, double & dfdyy, double & dfdyz,
+                               double & dfdzx, double & dfdzy, double & dfdzz) const
 {
-
-
   double xb, yb, curvRadb;
   bool in;
 
@@ -1346,5 +1326,4 @@ void gLevelsetNACA00::hessian (double x, double y, double z,
   dfdzx = 0.;
   dfdzy = 0.;
   dfdzz = 0.;
-
 }
diff --git a/Geo/gmshLevelset.h b/Geo/gmshLevelset.h
index 54dfb89aae..604fb0f8de 100644
--- a/Geo/gmshLevelset.h
+++ b/Geo/gmshLevelset.h
@@ -61,10 +61,19 @@ public:
   gLevelset(const gLevelset &);
   virtual ~gLevelset(){}
   virtual gLevelset * clone() const{printf("Error virtual fct called gLevelset::clone()"); return 0;}
-  virtual double operator() (const double x, const double y, const double z) const = 0;
-  bool isInsideDomain (const double &x, const double &y, const double &z) const {return this->operator()(x,y,z) * insideDomain > 0.;}
-  bool isOutsideDomain (const double &x, const double &y, const double &z) const {return this->operator()(x,y,z) * insideDomain < 0.;}
-  bool isOnBorder      (const double &x, const double &y, const double &z) const {return this->operator()(x,y,z) == 0.;}
+  virtual double operator() (double x, double y, double z) const = 0;
+  bool isInsideDomain(const double &x, const double &y, const double &z) const
+  {
+    return this->operator()(x,y,z) * insideDomain > 0.;
+  }
+  bool isOutsideDomain(const double &x, const double &y, const double &z) const
+  {
+    return this->operator()(x,y,z) * insideDomain < 0.;
+  }
+  bool isOnBorder(const double &x, const double &y, const double &z) const
+  {
+    return this->operator()(x,y,z) == 0.;
+  }
   virtual std::vector<gLevelset *> getChildren() const = 0;
   virtual double choose (double d1, double d2) const = 0;
   virtual int type() const = 0;
@@ -114,7 +123,7 @@ public:
     }
     tag_ = tag;
   }
-  virtual double operator () (const double x, const double y, const double z) const = 0;
+  virtual double operator () (double x, double y, double z) const = 0;
   std::vector<gLevelset *> getChildren() const { std::vector<gLevelset *> p; return p; }
   double choose (double d1, double d2) const {
     printf("Cannot use function \"choose\" with a primitive!\n");
@@ -131,7 +140,8 @@ protected:
   double xc, yc, zc, r;
 public:
   gLevelsetSphere (const double &x, const double &y, const double &z, const double &R, int tag);
-  virtual double operator () (const double x, const double y, const double z) const{
+  virtual double operator () (double x, double y, double z) const
+  {
     if(r >= 0.)
       return sqrt((xc - x) * (xc - x) + (yc - y) * (yc - y) + (zc - z) * (zc - z)) - r;
     return (- r - sqrt((xc - x) * (xc - x) + (yc - y) * (yc - y) + (zc - z) * (zc - z)));
@@ -151,7 +161,8 @@ protected:
   double a, b, c, d;
 public:
   // define the plane _a*x+_b*y+_c*z+_d, with outward normal (a,b,c)
-  gLevelsetPlane (const double _a, const double _b, const double _c, const double _d, int tag=1) : gLevelsetPrimitive(tag), a(_a), b(_b), c(_c), d(_d) {}
+  gLevelsetPlane (const double _a, const double _b, const double _c, const double _d, int tag=1)
+    : gLevelsetPrimitive(tag), a(_a), b(_b), c(_c), d(_d) {}
   // define the plane passing through the point pt and with outward normal norm
   gLevelsetPlane (const std::vector<double> &pt, const std::vector<double> &norm, int tag=1);
   gLevelsetPlane (const double *pt, const double *norm, int tag=1);
@@ -161,13 +172,10 @@ public:
   gLevelsetPlane(const gLevelsetPlane &lv);
   virtual gLevelset * clone() const{return new gLevelsetPlane(*this);}
   // return negative value inward and positive value outward
-  virtual double operator() (const double x, const double y, const double z) const
-    {return a * x + b * y + c * z + d;}
+  virtual double operator() (double x, double y, double z) const { return a * x + b * y + c * z + d; }
   int type() const {return PLANE;}
 };
 
-
-
 class gLevelsetPoints : public gLevelsetPrimitive
 {
 protected:
@@ -200,7 +208,7 @@ public:
   gLevelsetPoints(const gLevelsetPoints &lv);
   virtual gLevelset * clone() const{return new gLevelsetPoints(*this);}
   // return negative value inward and positive value outward
-  virtual double operator() (const double x, const double y, const double z) const;
+  virtual double operator() (double x, double y, double z) const;
   void computeLS(std::vector<MVertex*> &vert);
   int type() const {return LSPOINTS;}
 };
@@ -221,7 +229,7 @@ public:
   gLevelsetQuadric(int tag=1) : gLevelsetPrimitive(tag) {init(); }
   gLevelsetQuadric(const gLevelsetQuadric &);
   virtual ~gLevelsetQuadric() {}
-  double operator () (const double x, const double y, const double z) const;
+  double operator () (double x, double y, double z) const;
   virtual int type() const = 0;
 };
 
@@ -271,7 +279,7 @@ class gLevelsetPopcorn: public gLevelsetPrimitive
 public:
   gLevelsetPopcorn(double xc, double yc, double zc, double r0, double A, double sigma, int tag=1);
   ~gLevelsetPopcorn(){}
-  double operator () (const double x, const double y, const double z) const;
+  double operator () (double x, double y, double z) const;
   int type() const { return UNKNOWN; }
 };
 
@@ -287,7 +295,7 @@ class gLevelsetShamrock: public gLevelsetPrimitive
 public:
   gLevelsetShamrock(double xmid, double ymid, double zmid, double a, double b, int c=3, int tag=1);
   ~gLevelsetShamrock(){}
-  double operator () (const double x, const double y, const double z) const;
+  double operator () (double x, double y, double z) const;
   int type() const { return UNKNOWN; }
 };
 
@@ -297,7 +305,7 @@ class gLevelsetMathEval: public gLevelsetPrimitive
 public:
   gLevelsetMathEval(std::string f, int tag=1);
   ~gLevelsetMathEval(){ if (_expr) delete _expr; }
-  double operator () (const double x, const double y, const double z) const;
+  double operator () (double x, double y, double z) const;
   int type() const { return UNKNOWN; }
 };
 
@@ -307,7 +315,7 @@ class gLevelsetMathEvalAll: public gLevelsetPrimitive
 public:
   gLevelsetMathEvalAll(std::vector<std::string> f, int tag=1);
   ~gLevelsetMathEvalAll(){ if (_expr) delete _expr; }
-  double operator() (const double x, const double y, const double z) const;
+  double operator() (double x, double y, double z) const;
   void gradient (double x, double y, double z,
 		double & dfdx, double & dfdy, double & dfdz) const;
   void hessian (double x, double y, double z,
@@ -325,7 +333,7 @@ public:
     _f = f;
   }
   ~gLevelsetSimpleFunction(){}
-  double operator () (const double x, const double y, const double z) const
+  double operator () (double x, double y, double z) const
   {
     return (*_f)(x,y,z);
   }
@@ -346,7 +354,7 @@ class gLevelsetDistMesh: public gLevelsetPrimitive
   ANNdistArray _dist;
 public :
   gLevelsetDistMesh(GModel *gm, std::string physical, int nbClose = 5);
-  double operator () (const double x, const double y, const double z) const;
+  double operator () (double x, double y, double z) const;
   ~gLevelsetDistMesh();
   int type() const { return UNKNOWN; }
 };
@@ -360,7 +368,7 @@ class gLevelsetPostView : public gLevelsetPrimitive
 public:
   gLevelsetPostView(int index, int tag=1) ;
   ~gLevelsetPostView(){ if(_octree) delete _octree;}
-  double operator () (const double x, const double y, const double z) const;
+  double operator () (double x, double y, double z) const;
   int type() const { return UNKNOWN; }
 };
 #endif
@@ -383,7 +391,7 @@ public:
 	delete children[i];
     }
   }
-  double operator () (const double x, const double y, const double z) const {
+  double operator () (double x, double y, double z) const {
     double d = (*children[0])(x, y, z);
     for (int i = 1; i < (int)children.size(); i++){
       double dt = (*children[i])(x, y, z);
@@ -417,7 +425,7 @@ protected:
   gLevelset *ls;
 public:
   gLevelsetReverse (gLevelset *p) : ls(p){}
-  double operator () (const double x, const double y, const double z) const {
+  double operator () (double x, double y, double z) const {
     return -(*ls)(x, y, z);
   }
   std::vector<gLevelset *> getChildren() const {return ls->getChildren();}
@@ -497,7 +505,7 @@ protected:
 public:
   gLevelsetImproved(){}
   gLevelsetImproved(const gLevelsetImproved &lv);
-  double operator() (const double x, const double y, const double z) const {return (*Ls)(x, y, z);}
+  double operator() (double x, double y, double z) const {return (*Ls)(x, y, z);}
   std::vector<gLevelset *> getChildren() const { return Ls->getChildren(); }
   double choose (double d1, double d2) const { return Ls->choose(d1, d2); }
   virtual int type() const = 0;
@@ -635,7 +643,7 @@ class gLevelsetNACA00: public gLevelsetPrimitive
 public:
   gLevelsetNACA00(double x0, double y0, double c, double t);
   ~gLevelsetNACA00() {}
-  double operator () (const double x, const double y, const double z) const;
+  double operator () (double x, double y, double z) const;
   void gradient (double x, double y, double z,
     double & dfdx, double & dfdy, double & dfdz) const;
   void hessian (double x, double y, double z,
diff --git a/Mesh/BDS.h b/Mesh/BDS.h
index 6a3fd7a3fb..7741f8717a 100644
--- a/Mesh/BDS.h
+++ b/Mesh/BDS.h
@@ -127,7 +127,7 @@ public:
   static double t;
 };
 
-class BDS_Point 
+class BDS_Point
 {
   // the first size is the one dictated by the Background Mesh the
   // second one is dictated by charecteristic lengths at points and is
@@ -181,9 +181,9 @@ class BDS_Edge
   {
     return _length;
   }
-  inline int numfaces() const 
+  inline int numfaces() const
   {
-    return _faces.size();
+    return (int)_faces.size();
   }
   int numTriangles() const ;
   inline BDS_Point *commonvertex(const BDS_Edge *other) const
@@ -223,19 +223,19 @@ class BDS_Edge
   }
   inline void del(BDS_Face *t)
   {
-    _faces.erase(std::remove_if(_faces.begin(),_faces.end(), 
-                                std::bind2nd(std::equal_to<BDS_Face*>(), t)), 
+    _faces.erase(std::remove_if(_faces.begin(),_faces.end(),
+                                std::bind2nd(std::equal_to<BDS_Face*>(), t)),
                  _faces.end());
   }
-  void oppositeof(BDS_Point * oface[2]) const; 
+  void oppositeof(BDS_Point * oface[2]) const;
   void update()
   {
-    _length = sqrt((p1->X - p2->X) * (p1->X - p2->X) + 
-                   (p1->Y - p2->Y) * (p1->Y - p2->Y) + 
+    _length = sqrt((p1->X - p2->X) * (p1->X - p2->X) +
+                   (p1->Y - p2->Y) * (p1->Y - p2->Y) +
                    (p1->Z - p2->Z) * (p1->Z - p2->Z));
   }
   BDS_Edge(BDS_Point *A, BDS_Point *B) : deleted(false), g(0)
-  {         
+  {
     if(*A < *B){
       p1 = A;
       p2 = B;
@@ -272,7 +272,7 @@ class BDS_Face
   inline BDS_Point *oppositeVertex (BDS_Edge *e)
   {
     if (e4){
-      Msg::Fatal("oppositeVertex to edge %d %d cannot be applied to a quad", 
+      Msg::Fatal("oppositeVertex to edge %d %d cannot be applied to a quad",
                  e->p1->iD, e->p2->iD);
       return 0;
     }
@@ -300,7 +300,7 @@ class BDS_Face
   }
   BDS_Face(BDS_Edge *A, BDS_Edge *B, BDS_Edge *C,BDS_Edge *D = 0)
     : deleted(false), e1(A), e2(B), e3(C), e4(D), g(0)
-  {     
+  {
     e1->addface(this);
     e2->addface(this);
     e3->addface(this);
@@ -354,11 +354,11 @@ class BDS_SwapEdgeTest
 {
  public:
   virtual bool operator() (BDS_Point *p1, BDS_Point *p2,
-                           BDS_Point *q1, BDS_Point *q2) const = 0; 
+                           BDS_Point *q1, BDS_Point *q2) const = 0;
   virtual bool operator() (BDS_Point *p1, BDS_Point *p2, BDS_Point *p3,
                            BDS_Point *q1, BDS_Point *q2, BDS_Point *q3,
                            BDS_Point *op1, BDS_Point *op2, BDS_Point *op3,
-                           BDS_Point *oq1, BDS_Point *oq2, BDS_Point *oq3) const = 0; 
+                           BDS_Point *oq1, BDS_Point *oq2, BDS_Point *oq3) const = 0;
   virtual ~BDS_SwapEdgeTest(){}
 };
 
@@ -368,15 +368,15 @@ class BDS_SwapEdgeTestQuality : public BDS_SwapEdgeTest
  public:
   BDS_SwapEdgeTestQuality(bool a, bool b=true) : testQuality(a), testSmallTriangles(b) {}
   virtual bool operator() (BDS_Point *p1, BDS_Point *p2,
-                           BDS_Point *q1, BDS_Point *q2) const ; 
+                           BDS_Point *q1, BDS_Point *q2) const ;
   virtual bool operator() (BDS_Point *p1, BDS_Point *p2, BDS_Point *p3,
                            BDS_Point *q1, BDS_Point *q2, BDS_Point *q3,
                            BDS_Point *op1, BDS_Point *op2, BDS_Point *op3,
-                           BDS_Point *oq1, BDS_Point *oq2, BDS_Point *oq3) const ; 
+                           BDS_Point *oq1, BDS_Point *oq2, BDS_Point *oq3) const ;
   virtual ~BDS_SwapEdgeTestQuality(){}
 };
 
-struct EdgeToRecover 
+struct EdgeToRecover
 {
   int p1,p2;
   GEdge *ge;
@@ -392,7 +392,7 @@ struct EdgeToRecover
     }
   }
   bool operator < (const EdgeToRecover &other) const
-  {    
+  {
     if(p1 < other.p1) return true;
     if(p1 > other.p1) return false;
     if(p2 < other.p2) return true;
@@ -400,22 +400,22 @@ struct EdgeToRecover
   }
 };
 
-class BDS_Mesh 
-{    
+class BDS_Mesh
+{
  public:
   int MAXPOINTNUMBER, SNAP_SUCCESS, SNAP_FAILURE;
   double Min[3], Max[3], LC;
   double scalingU, scalingV;
   BDS_Mesh(int _MAXX = 0) :  MAXPOINTNUMBER(_MAXX),scalingU(1),scalingV(1){}
-  void load(GVertex *gv); // load in BDS all the meshes of the vertex 
-  void load(GEdge *ge); // load in BDS all the meshes of the edge 
-  void load(GFace *gf); // load in BDS all the meshes of the surface 
+  void load(GVertex *gv); // load in BDS all the meshes of the vertex
+  void load(GEdge *ge); // load in BDS all the meshes of the edge
+  void load(GFace *gf); // load in BDS all the meshes of the surface
   virtual ~BDS_Mesh();
   BDS_Mesh(const BDS_Mesh &other);
-  std::set<BDS_GeomEntity*, GeomLessThan> geom; 
-  std::set<BDS_Point*, PointLessThan> points; 
-  std::list<BDS_Edge*> edges; 
-  std::list<BDS_Face*> triangles; 
+  std::set<BDS_GeomEntity*, GeomLessThan> geom;
+  std::set<BDS_Point*, PointLessThan> points;
+  std::list<BDS_Edge*> edges;
+  std::list<BDS_Face*> triangles;
   // Points
   BDS_Point *add_point(int num, double x, double y, double z);
   BDS_Point *add_point(int num, double u, double v, GFace *gf);
@@ -430,7 +430,7 @@ class BDS_Mesh
   BDS_Edge *find_edge(BDS_Point *p1, BDS_Point *p2, BDS_Face *t) const;
   // Triangles & Quadrangles
   BDS_Face *add_triangle(int p1, int p2, int p3);
-  BDS_Face *add_quadrangle(int p1, int p2, int p3, int p4); 
+  BDS_Face *add_quadrangle(int p1, int p2, int p3, int p4);
   BDS_Face *add_triangle(BDS_Edge *e1, BDS_Edge *e2, BDS_Edge *e3);
   BDS_Face *add_quadrangle(BDS_Edge *e1, BDS_Edge *e2, BDS_Edge *e3, BDS_Edge *e4);
   void del_face(BDS_Face *t);
@@ -457,8 +457,8 @@ class BDS_Mesh
   void cleanup();
 };
 
-void normal_triangle(BDS_Point *p1, BDS_Point *p2, BDS_Point *p3, double c[3]); 
-void swap_config(BDS_Edge *e, 
+void normal_triangle(BDS_Point *p1, BDS_Point *p2, BDS_Point *p3, double c[3]);
+void swap_config(BDS_Edge *e,
                  BDS_Point **p11, BDS_Point **p12, BDS_Point **p13,
                  BDS_Point **p21, BDS_Point **p22, BDS_Point **p23,
                  BDS_Point **p31, BDS_Point **p32, BDS_Point **p33,
diff --git a/Post/PViewAsSimpleFunction.cpp b/Post/PViewAsSimpleFunction.cpp
index fa42fbaa65..2eaef2468e 100644
--- a/Post/PViewAsSimpleFunction.cpp
+++ b/Post/PViewAsSimpleFunction.cpp
@@ -7,7 +7,7 @@
 #include "PViewData.h"
 #include "PViewAsSimpleFunction.h"
 
-double PViewEvaluator::operator() (const double x, const double y, const double z) const
+double PViewEvaluator::operator() (double x, double y, double z) const
 {
   PViewData * pvd = _pv->getData();
   double value;
diff --git a/Post/PViewAsSimpleFunction.h b/Post/PViewAsSimpleFunction.h
index 75b72b6617..17ba4ae145 100644
--- a/Post/PViewAsSimpleFunction.h
+++ b/Post/PViewAsSimpleFunction.h
@@ -15,7 +15,7 @@ class PViewEvaluator : public simpleFunction<double> {
   int _step;
  public:
   PViewEvaluator (PView *pv) : _pv(pv), _step(0) {}
-  double operator() (const double x, const double y, const double z) const;
+  double operator() (double x, double y, double z) const;
   void setStep (int s) { _step = s; }
 };
 
-- 
GitLab