[issm-svn] r19605 - issm/trunk/src/c/bamg

morlighe at issm.ess.uci.edu morlighe at issm.ess.uci.edu
Wed Sep 30 08:31:13 PDT 2015


Author: morlighe
Date: 2015-09-30 08:31:13 -0700 (Wed, 30 Sep 2015)
New Revision: 19605

Modified:
   issm/trunk/src/c/bamg/BamgQuadtree.h
   issm/trunk/src/c/bamg/BamgVertex.h
   issm/trunk/src/c/bamg/Mesh.cpp
   issm/trunk/src/c/bamg/Triangle.h
   issm/trunk/src/c/bamg/VertexOnGeom.cpp
Log:
BUG: fixing bamg with new clang compilers on mac OSX

Modified: issm/trunk/src/c/bamg/BamgQuadtree.h
===================================================================
--- issm/trunk/src/c/bamg/BamgQuadtree.h	2015-09-30 06:40:03 UTC (rev 19604)
+++ issm/trunk/src/c/bamg/BamgQuadtree.h	2015-09-30 15:31:13 UTC (rev 19605)
@@ -34,6 +34,7 @@
 					int     Id()         {_error_("not implemented yet"); };
 					int     ObjectEnum() {_error_("not implemented yet"); };
 					Object *copy()       {_error_("not implemented yet"); };
+					void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ _error_("not implemented yet!"); };
 			};
 
 			/*BamgQuadtree private Fields*/

Modified: issm/trunk/src/c/bamg/BamgVertex.h
===================================================================
--- issm/trunk/src/c/bamg/BamgVertex.h	2015-09-30 06:40:03 UTC (rev 19604)
+++ issm/trunk/src/c/bamg/BamgVertex.h	2015-09-30 15:31:13 UTC (rev 19605)
@@ -47,6 +47,7 @@
 			void   MetricFromHessian(const double Hxx,const double Hyx, const double Hyy, const double smin,const double smax,const double s,const double err,BamgOpts* bamgopts);
 			void   Echo();
 			int    GetReferenceNumber() const;
+			I2     GetIntegerCoordinates() const{return this->i;};// avoid operator I2()
 			long   Optim(int =1,int =0); 
 
 			//inline functions

Modified: issm/trunk/src/c/bamg/Mesh.cpp
===================================================================
--- issm/trunk/src/c/bamg/Mesh.cpp	2015-09-30 06:40:03 UTC (rev 19604)
+++ issm/trunk/src/c/bamg/Mesh.cpp	2015-09-30 15:31:13 UTC (rev 19605)
@@ -1098,7 +1098,7 @@
 		}
 	}
 	/*}}}*/
-	void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3) {/*{{{*/
+	void Mesh::AddVertex( BamgVertex &s,Triangle* t, Icoor2* det3){/*{{{*/
 		/*Original code from Frederic Hecht <hecht at ann.jussieu.fr> (BAMG v1.01, Mesh2.cpp/Add)*/
 		// -------------------------------
 		//             s2
@@ -1123,9 +1123,9 @@
 		int iedge; 
 
 		/*three vertices of t*/
-		BamgVertex &s0=(*t)[0];
-		BamgVertex &s1=(*t)[1];
-		BamgVertex &s2=(*t)[2];
+		BamgVertex* s0=t->GetVertex(0);
+		BamgVertex* s1=t->GetVertex(1);
+		BamgVertex* s2=t->GetVertex(2);
 
 		//determinant of t
 		Icoor2 detOld=t->det;
@@ -1133,7 +1133,7 @@
 		/* infvertexindex = index of the infinite vertex (NULL)
 			if no infinite vertex (NULL) infvertexindex=-1
 			else if v_i is infinite, infvertexindex=i*/
-		int infvertexindex = &s0 ?  ((  &s1 ? ( &s2  ? -1 : 2) : 1  )) : 0;
+		int infvertexindex = s0 ? ((s1? (s2?-1:2):1)):0;
 
 		//some checks
 		if(((infvertexindex <0 ) && (detOld <0)) ||  ((infvertexindex >=0) && (detOld >0)) ){
@@ -1146,14 +1146,14 @@
 			det3 = det3local;
 			//if no infinite vertex
 			if (infvertexindex<0 ) {
-				det3[0]=bamg::det(s ,s1,s2);
-				det3[1]=bamg::det(s0,s ,s2);
-				det3[2]=bamg::det(s0,s1,s );}
+				det3[0]=bamg::det(s .GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s2->GetIntegerCoordinates());
+				det3[1]=bamg::det(s0->GetIntegerCoordinates(),s .GetIntegerCoordinates(),s2->GetIntegerCoordinates());
+				det3[2]=bamg::det(s0->GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s.GetIntegerCoordinates());}
 			else { 
 				// one of &s1  &s2  &s0 is NULL
-				det3[0]= &s0 ? -1 : bamg::det(s ,s1,s2) ;
-				det3[1]= &s1 ? -1 : bamg::det(s0,s ,s2) ;
-				det3[2]= &s2 ? -1 : bamg::det(s0,s1,s ) ;
+				det3[0]= s0 ? -1 : bamg::det(s.GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s2->GetIntegerCoordinates()) ;
+				det3[1]= s1 ? -1 : bamg::det(s0->GetIntegerCoordinates(),s.GetIntegerCoordinates(),s2->GetIntegerCoordinates()) ;
+				det3[2]= s2 ? -1 : bamg::det(s0->GetIntegerCoordinates(),s1->GetIntegerCoordinates(),s.GetIntegerCoordinates()) ;
 			}
 		}
 
@@ -3799,15 +3799,15 @@
 		// computation of the det 
 		int number_of_errors=0;
 		for (i=0;i<nbt;i++) {
-			BamgVertex & v0 = triangles[i][0];
-			BamgVertex & v1 = triangles[i][1];
-			BamgVertex & v2 = triangles[i][2];
+			BamgVertex* v0 = triangles[i](0);
+			BamgVertex* v1 = triangles[i](1);
+			BamgVertex* v2 = triangles[i](2);
 
 			//If this is not a boundary triangle
-			if ( &v0 && &v1 &&  &v2 ){
+			if (v0 && v1 && v2){
 
 				/*Compute determinant*/
-				triangles[i].det= det(v0,v1,v2);
+				triangles[i].det= det(v0->GetIntegerCoordinates(),v1->GetIntegerCoordinates(),v2->GetIntegerCoordinates());
 
 				/*Check that determinant is positive*/
 				if (triangles[i].det <=0){

Modified: issm/trunk/src/c/bamg/Triangle.h
===================================================================
--- issm/trunk/src/c/bamg/Triangle.h	2015-09-30 06:40:03 UTC (rev 19604)
+++ issm/trunk/src/c/bamg/Triangle.h	2015-09-30 15:31:13 UTC (rev 19605)
@@ -64,6 +64,7 @@
 			double qualite() ;
 			void  Set(const Triangle &,const Mesh &,Mesh &);
 			int   In(BamgVertex *v) const { return vertices[0]==v || vertices[1]==v || vertices[2]==v ;}
+			BamgVertex* GetVertex(int i){return vertices[i];}; // FIXME: this is used to avoid BamgVertex * operator()
 
 	};
 

Modified: issm/trunk/src/c/bamg/VertexOnGeom.cpp
===================================================================
--- issm/trunk/src/c/bamg/VertexOnGeom.cpp	2015-09-30 06:40:03 UTC (rev 19604)
+++ issm/trunk/src/c/bamg/VertexOnGeom.cpp	2015-09-30 15:31:13 UTC (rev 19605)
@@ -43,11 +43,11 @@
 	}
 	/*}}}*/
 	int VertexOnGeom::OnGeomVertex()const{/*{{{*/
-		return this? curvilincoord <0 :0;
+		return curvilincoord<0;
 	}
 	/*}}}*/
 	int VertexOnGeom::OnGeomEdge() const{/*{{{*/
-		return this? curvilincoord >=0 :0;
+		return curvilincoord>=0;
 	}
 	/*}}}*/
 	int VertexOnGeom::IsRequiredVertex() {/*{{{*/



More information about the issm-svn mailing list