From ce2c9f398531d617b3da0c0b4a8fa460ab2bcb1b Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Sat, 9 Jul 2016 19:09:18 +0000
Subject: [PATCH] fix compile without SOLVER+ANN

---
 Geo/discreteFace.cpp | 35 +++++++++++++++++++----------------
 1 file changed, 19 insertions(+), 16 deletions(-)

diff --git a/Geo/discreteFace.cpp b/Geo/discreteFace.cpp
index 4e356049a5..692afb6e27 100644
--- a/Geo/discreteFace.cpp
+++ b/Geo/discreteFace.cpp
@@ -155,7 +155,7 @@ void discreteFace::createGeometry()
   for(unsigned int i=0; i<toParam.size(); i++){
     fillHoles(toParam[i]);
     std::vector<MElement*> mytri = toParam[i]->tri;
-    discreteDiskFace *df = new discreteDiskFace (this,toParam[i], order,(_CAD.empty() ? NULL : &_CAD));    
+    discreteDiskFace *df = new discreteDiskFace (this,toParam[i], order,(_CAD.empty() ? NULL : &_CAD));
     df->replaceEdges(toParam[i]->my_GEdges);
     _atlas.push_back(df);
   }
@@ -173,7 +173,7 @@ void discreteFace::gatherMeshes()
     for (unsigned int j=0;j<_atlas[i]->triangles.size(); j++){
       MTriangle *t = _atlas[i]->triangles[j];
       SPoint2 p0,p1,p2;
-      reparamMeshVertexOnFace(t->getVertex(0),_atlas[i], p0);      
+      reparamMeshVertexOnFace(t->getVertex(0),_atlas[i], p0);
       reparamMeshVertexOnFace(t->getVertex(1),_atlas[i], p1);
       reparamMeshVertexOnFace(t->getVertex(2),_atlas[i], p2);
       SPoint2 pc = (p0+p1+p2)*(1./3.0);
@@ -215,7 +215,7 @@ void discreteFace::mesh(bool verbose)
     _atlas[i]->mesh(verbose);
     //printAtlasMesh(_atlas[i],i);
   }
-  
+
   gatherMeshes();
   meshStatistics.status = GFace::DONE;
 #endif
@@ -230,7 +230,7 @@ void discreteFace::printAtlasMesh(std::vector<MElement*> elm, int I)
   FILE* pmesh = Fopen(buffer,"w");
 
   std::set<MVertex*> meshvertices;
-  
+
   for(unsigned int i=0; i<elm.size(); ++i){
     MElement* tri = elm[i];
     for(unsigned int j=0; j<3; j++)
@@ -263,14 +263,14 @@ void discreteFace::printAtlasMesh(std::vector<MElement*> elm, int I)
 
 void discreteFace::printAtlasMesh(discreteDiskFace* ddf, int I)
 {
-
+#if defined(HAVE_SOLVER) && defined(HAVE_ANN)
   std::map<MVertex*,int> mv2int;
   char buffer[16];
   sprintf(buffer,"atlas_mesh%d.msh",I);
   FILE* pmesh = Fopen(buffer,"w");
 
   std::set<MVertex*> meshvertices;
-  
+
   for(unsigned int i=0; i<ddf->triangles.size(); ++i){
     MTriangle* tri = ddf->triangles[i];
     for(unsigned int j=0; j<3; j++)
@@ -296,7 +296,7 @@ void discreteFace::printAtlasMesh(discreteDiskFace* ddf, int I)
   }
   fprintf(pmesh,"$EndElements\n");
   fclose(pmesh);
-
+#endif
 }
 
 
@@ -455,7 +455,7 @@ void discreteFace::splitDiscreteEdge ( GEdge *de , GVertex *gv, discreteEdge* ne
 void discreteFace::split(triangulation* trian,std::vector<triangulation*> &partition,int nPartitions)
 {
 #if defined(HAVE_SOLVER) && defined(HAVE_ANN) && defined(HAVE_METIS)
-  
+
   int nVertex = trian->tri.size(); // number of elements
   int nEdge = trian->ed2tri.size() - trian->borderEdg.size();// number of edges, (without the boundary ones)
 
@@ -497,9 +497,9 @@ void discreteFace::split(triangulation* trian,std::vector<triangulation*> &parti
     elem[part[i]].push_back(trian->tri[i]);
     el2part[trian->tri[i]] = part[i];
   }
-  
+
   //check connectivity
-  for(int p=0; p<nPartitions; p++){// part by part 
+  for(int p=0; p<nPartitions; p++){// part by part
     std::set<MElement*> celem(elem[p].begin(),elem[p].end());// current elements of the p-th part
     std::queue<MElement*> my_todo; // todo list, for adjacency check - in order to check the connectivity of the part
     std::map<MElement*,bool> check_todo; // help to complete todo list
@@ -681,15 +681,15 @@ void discreteFace::updateTopology(std::vector<triangulation*>&partition)
 
 void discreteFace::fillHoles(triangulation* trian)
 {
-
-  std::map<double,std::vector<MVertex*> > bords = trian->bord;  
+#if defined(HAVE_SOLVER) && defined(HAVE_ANN)
+  std::map<double,std::vector<MVertex*> > bords = trian->bord;
   std::map<double,std::vector<MVertex*> >::reverse_iterator it = bords.rbegin();
   ++it;
   for(; it!=bords.rend(); ++it){
     double x[3] = {0.,0.,0.};
     std::vector<MVertex*> mv = it->second;
     for(unsigned int j=0; j<mv.size(); j++){
-      x[0] += mv[j]->x(); 
+      x[0] += mv[j]->x();
       x[1] += mv[j]->y();
       x[2] += mv[j]->z();
     }
@@ -699,19 +699,22 @@ void discreteFace::fillHoles(triangulation* trian)
     center->setEntity(this);
     trian->vert.insert(center);
     for(unsigned int j=1; j<mv.size(); j++)
-      addTriangle(trian,new MTriangle(mv[j],mv[j-1],center));    
+      addTriangle(trian,new MTriangle(mv[j],mv[j-1],center));
     addTriangle(trian,new MTriangle(mv[0],mv[mv.size()-1],center));
   }
-
+#endif
 }
 
 void discreteFace::addTriangle(triangulation* trian, MTriangle* t)
-{// #mark quid borders ?
+{
+#if defined(HAVE_SOLVER) && defined(HAVE_ANN)
+  // #mark quid borders ?
   for(int i=0; i<3; i++){
     MEdge ed = t->getEdge(i);
     trian->ed2tri[ed].push_back(trian->tri.size());
   }
   trian->tri.push_back(t);
+#endif
 }
 
 
-- 
GitLab