Index: /issm/trunk/src/c/objects/Bamg/BamgVertex.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/BamgVertex.cpp	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/BamgVertex.cpp	(revision 5150)
@@ -9,4 +9,114 @@
 
 	/*Methods*/
+	/*FUNCTION BamgVertex::Echo {{{1*/
+
+	void BamgVertex::Echo(void){
+
+		printf("Vertex:\n");
+		printf("  integer   coordinates i.x: %i, i.y: %i\n",i.x,i.y);
+		printf("  Euclidean coordinates r.x: %g, r.y: %g\n",r.x,r.y);
+		printf("  ReferenceNumber = %i\n",ReferenceNumber);
+		m.Echo();
+
+		return;
+	}
+	/*}}}*/
+	/*FUNCTION BamgVertex::GetReferenceNumber{{{1*/
+	int  BamgVertex::GetReferenceNumber() const { 
+		return ReferenceNumber;
+	}
+	/*}}}*/
+	/*FUNCTION BamgVertex::MetricFromHessian{{{1*/
+	void BamgVertex::MetricFromHessian(const double Hxx,const double Hyx, const double Hyy,const double smin,const double smax,const double s,double err,BamgOpts* bamgopts){
+		/*Compute Metric from Hessian*/
+
+		/*get options*/
+		double power=(bamgopts->power);
+		double anisomax=(bamgopts->anisomax);
+		double CutOff=bamgopts->cutoff;
+		double hmin=(bamgopts->hmin);
+		double hmax=(bamgopts->hmax);
+		double coef=bamgopts->coeff;
+		int    Metrictype=(bamgopts->Metrictype);
+
+		/*Intermediary*/
+		double ci;
+
+		/*compute multiplicative coefficient depending on Metric Type (2/9 because it is 2d)*/
+
+		//Absolute Error
+		/*
+		 *            2         1       
+		 *Metric M = ---  ------------   Abs(Hessian)
+		 *            9   err * coeff^2  
+		 */
+		if (Metrictype==0){
+			ci= 2.0/9.0 * 1/(err*coef*coef);
+		}
+
+		//Relative Error
+		/*
+		 *            2         1            Abs(Hessian)
+		 *Metric M = ---  ------------  ----------------------
+		 *            9   err * coeff^2  max( |s| , cutoff*max(|s|) )
+		 *
+		 */
+		else if (Metrictype==1){
+			ci= 2.0/9.0 * 1/(err*coef*coef) * 1/Max( Abs(s), CutOff*(Max(Abs(smin),Abs(smax))));
+		}
+
+		//Rescaled absolute error
+		/*
+		 *            2         1            Abs(Hessian)
+		 *Metric M = ---  ------------  ---------------------- 
+		 *            9   err * coeff^2       (smax-smin)
+		 */
+		else if (Metrictype==2){
+			ci= 2.0/9.0 * 1/(err*coef*coef) * 1/(smax-smin);
+		}
+		else{
+			ISSMERROR("Metrictype %i not supported yet (use 0,1 or 2(default))",Metrictype);
+		}
+
+		//initialize metric Miv with ci*H
+		Metric Miv(Hxx*ci,Hyx*ci,Hyy*ci);
+
+		//Get eigen values and vectors of Miv
+		MatVVP2x2 Vp(Miv);
+
+		//move eigen valuse to their absolute values
+		Vp.Abs();
+
+		//Apply a power if requested by user
+		if(power!=1.0) Vp.pow(power);
+
+		//modify eigen values according to hmin and hmax
+		Vp.Maxh(hmax);
+		Vp.Minh(hmin);
+
+		//Bound anisotropy by 1/(anisomax)^2
+		Vp.BoundAniso2(1/(anisomax*anisomax));
+
+		//rebuild Metric from Vp
+		Metric MVp(Vp);
+
+		//Apply Metric to vertex
+		m.IntersectWith(MVp);
+
+	}
+	/*}}}1*/
+	/*FUNCTION BamgVertex::Optim {{{1*/
+	long BamgVertex::Optim(int i,int koption){ 
+		long ret=0;
+		if ( t && (vint >= 0 ) && (vint <3) ){
+			ret = t->Optim(vint,koption);
+			if(!i){
+				t =0; // for no future optime 
+				vint= 0;
+			}
+		}
+		return ret;
+	}
+	/*}}}*/
 	/*FUNCTION BamgVertex::Smoothing{{{1*/
 	double  BamgVertex::Smoothing(Mesh &Th,const Mesh &BTh,Triangle* &tstart ,double omega){
@@ -113,109 +223,4 @@
 	}
 	/*}}}1*/
-	/*FUNCTION BamgVertex::MetricFromHessian{{{1*/
-	void BamgVertex::MetricFromHessian(const double Hxx,const double Hyx, const double Hyy,const double smin,const double smax,const double s,double err,BamgOpts* bamgopts){
-		/*Compute Metric from Hessian*/
-
-		/*get options*/
-		double power=(bamgopts->power);
-		double anisomax=(bamgopts->anisomax);
-		double CutOff=bamgopts->cutoff;
-		double hmin=(bamgopts->hmin);
-		double hmax=(bamgopts->hmax);
-		double coef=bamgopts->coeff;
-		int    Metrictype=(bamgopts->Metrictype);
-
-		/*Intermediary*/
-		double ci;
-
-		/*compute multiplicative coefficient depending on Metric Type (2/9 because it is 2d)*/
-
-		//Absolute Error
-		/*
-		 *            2         1       
-		 *Metric M = ---  ------------   Abs(Hessian)
-		 *            9   err * coeff^2  
-		 */
-		if (Metrictype==0){
-			ci= 2.0/9.0 * 1/(err*coef*coef);
-		}
-
-		//Relative Error
-		/*
-		 *            2         1            Abs(Hessian)
-		 *Metric M = ---  ------------  ----------------------
-		 *            9   err * coeff^2  max( |s| , cutoff*max(|s|) )
-		 *
-		 */
-		else if (Metrictype==1){
-			ci= 2.0/9.0 * 1/(err*coef*coef) * 1/Max( Abs(s), CutOff*(Max(Abs(smin),Abs(smax))));
-		}
-
-		//Rescaled absolute error
-		/*
-		 *            2         1            Abs(Hessian)
-		 *Metric M = ---  ------------  ---------------------- 
-		 *            9   err * coeff^2       (smax-smin)
-		 */
-		else if (Metrictype==2){
-			ci= 2.0/9.0 * 1/(err*coef*coef) * 1/(smax-smin);
-		}
-		else{
-			ISSMERROR("Metrictype %i not supported yet (use 0,1 or 2(default))",Metrictype);
-		}
-
-		//initialize metric Miv with ci*H
-		Metric Miv(Hxx*ci,Hyx*ci,Hyy*ci);
-
-		//Get eigen values and vectors of Miv
-		MatVVP2x2 Vp(Miv);
-
-		//move eigen valuse to their absolute values
-		Vp.Abs();
-
-		//Apply a power if requested by user
-		if(power!=1.0) Vp.pow(power);
-
-		//modify eigen values according to hmin and hmax
-		Vp.Maxh(hmax);
-		Vp.Minh(hmin);
-
-		//Bound anisotropy by 1/(anisomax)^2
-		Vp.BoundAniso2(1/(anisomax*anisomax));
-
-		//rebuild Metric from Vp
-		Metric MVp(Vp);
-
-		//Apply Metric to vertex
-		m.IntersectWith(MVp);
-
-	}
-	/*}}}1*/
-	/*FUNCTION BamgVertex::Echo {{{1*/
-
-	void BamgVertex::Echo(void){
-
-		printf("Vertex:\n");
-		printf("  integer   coordinates i.x: %i, i.y: %i\n",i.x,i.y);
-		printf("  Euclidean coordinates r.x: %g, r.y: %g\n",r.x,r.y);
-		printf("  ReferenceNumber = %i\n",ReferenceNumber);
-		m.Echo();
-
-		return;
-	}
-	/*}}}*/
-	/*FUNCTION BamgVertex::Optim {{{1*/
-	long BamgVertex::Optim(int i,int koption){ 
-		long ret=0;
-		if ( t && (vint >= 0 ) && (vint <3) ){
-			ret = t->Optim(vint,koption);
-			if(!i){
-				t =0; // for no future optime 
-				vint= 0;
-			}
-		}
-		return ret;
-	}
-	/*}}}*/
 
 	/*Intermediary*/
Index: /issm/trunk/src/c/objects/Bamg/BamgVertex.h
===================================================================
--- /issm/trunk/src/c/objects/Bamg/BamgVertex.h	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/BamgVertex.h	(revision 5150)
@@ -46,5 +46,5 @@
 			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 { return ReferenceNumber;}
+			int    GetReferenceNumber() const;
 			long   Optim(int =1,int =0); 
 
Index: /issm/trunk/src/c/objects/Bamg/Mesh.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Mesh.cpp	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/Mesh.cpp	(revision 5150)
@@ -2630,4 +2630,34 @@
 	}
 	/*}}}1*/
+	/*FUNCTION Mesh::GetId(const Triangle & t) const{{{1*/
+	long Mesh::GetId(const Triangle & t) const  { 
+		return &t - triangles;
+	}
+	/*}}}1*/
+	/*FUNCTION Mesh::GetId(const Triangle * t) const{{{1*/
+	long Mesh::GetId(const Triangle * t) const  { 
+		return t - triangles;
+	}
+	/*}}}1*/
+	/*FUNCTION Mesh::GetId(const BamgVertex & t) const{{{1*/
+	long Mesh::GetId(const BamgVertex & t) const  { 
+		return &t - vertices;
+	}
+	/*}}}1*/
+	/*FUNCTION Mesh::GetId(const BamgVertex * t) const{{{1*/
+	long Mesh::GetId(const BamgVertex * t) const  { 
+		return t - vertices;
+	}
+	/*}}}1*/
+	/*FUNCTION Mesh::GetId(const Edge & t) const{{{1*/
+	long Mesh::GetId(const Edge & t) const  { 
+		return &t - edges;
+	}
+	/*}}}1*/
+	/*FUNCTION Mesh::GetId(const Edge * t) const{{{1*/
+	long Mesh::GetId(const Edge * t) const  { 
+		return t - edges;
+	}
+	/*}}}1*/
 	/*FUNCTION Mesh::Init{{{1*/
 	void Mesh::Init(long maxnbv_in) {
@@ -2909,4 +2939,9 @@
 	}
 	/*}}}1*/
+	/*FUNCTION Mesh::isCracked{{{1*/
+	int Mesh::isCracked() const {
+		return NbCrackedVertices != 0;
+	}
+	/*}}}1*/
 	/*FUNCTION Mesh::MakeGeometricalEdgeToEdge{{{1*/
 	Edge** Mesh::MakeGeometricalEdgeToEdge() {
@@ -3002,4 +3037,9 @@
 		if (  !quadtree )  quadtree = new QuadTree(this);
 
+	}
+	/*}}}1*/
+	/*FUNCTION Mesh::MaxinalHmax{{{1*/
+	double Mesh::MaximalHmax() {
+		return Max(pmax.x-pmin.x,pmax.y-pmin.y);
 	}
 	/*}}}1*/
@@ -3079,4 +3119,9 @@
 	}
 	/*}}}1*/
+	/*FUNCTION Mesh::MininalHmin{{{1*/
+	double Mesh::MinimalHmin() {
+		return 2.0/coefIcoor;
+	}
+	/*}}}1*/
 /*FUNCTION Mesh::NearestVertex{{{1*/
 BamgVertex* Mesh::NearestVertex(Icoor1 i,Icoor1 j) {
@@ -3203,4 +3248,9 @@
 		 NbSwapf += vertices[i].Optim(0);
 		NbTSwap +=  NbSwapf ;
+	}
+	/*}}}1*/
+	/*FUNCTION Mesh::Number2{{{1*/
+	long Mesh::Number2(const Triangle * t) const{ 
+		return t - triangles; 
 	}
 	/*}}}1*/
@@ -4656,4 +4706,14 @@
 }
 /*}}}1*/
+/*FUNCTION Mesh::ToI2{{{1*/
+I2 Mesh::toI2(const R2 & P) const {
+	return  I2( (Icoor1) (coefIcoor*(P.x-pmin.x)),(Icoor1) (coefIcoor*(P.y-pmin.y)) );
+}
+/*}}}1*/
+/*FUNCTION Mesh::ToR2{{{1*/
+R2 Mesh::toR2(const I2 & P) const {
+	return  R2( (double) P.x/coefIcoor+pmin.x, (double) P.y/coefIcoor+pmin.y);
+}
+/*}}}1*/
 /*FUNCTION Mesh::TriangleFindFromCoord{{{1*/
 Triangle * Mesh::TriangleFindFromCoord(const I2 & B,Icoor2 dete[3], Triangle *tstart) const {
Index: /issm/trunk/src/c/objects/Bamg/Mesh.h
===================================================================
--- /issm/trunk/src/c/objects/Bamg/Mesh.h	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/Mesh.h	(revision 5150)
@@ -1,4 +1,4 @@
-#ifndef _TRIANGLES_H_
-#define _TRIANGLES_H_
+#ifndef _MESH_H_
+#define _MESH_H_
 
 #include "./include.h"
@@ -73,12 +73,8 @@
 			//Methods
 			void SetIntCoor(const char * from =0);
-			double MinimalHmin() {return 2.0/coefIcoor;}
-			double MaximalHmax() {return Max(pmax.x-pmin.x,pmax.y-pmin.y);}
-			I2 toI2(const R2 & P) const {
-				return  I2( (Icoor1) (coefIcoor*(P.x-pmin.x))
-							,(Icoor1) (coefIcoor*(P.y-pmin.y)) );}
-			R2 toR2(const I2 & P) const {
-				return  R2( (double) P.x/coefIcoor+pmin.x, (double) P.y/coefIcoor+pmin.y);
-			}
+			double MinimalHmin();
+			double MaximalHmax();
+			I2 toI2(const R2 & P) const;
+			R2 toR2(const I2 & P) const;
 			void AddVertex(BamgVertex & s,Triangle * t,Icoor2 *  =0) ;
 			void Insert();
@@ -105,11 +101,11 @@
 			Metric MetricAt (const R2 &) const;
 			GeometricalEdge* ProjectOnCurve( Edge & AB, BamgVertex &  A, BamgVertex & B,double theta, BamgVertex & R,VertexOnEdge & BR,VertexOnGeom & GR);
-			long GetId(const Triangle & t) const  { return &t - triangles;}
-			long GetId(const Triangle * t) const  { return t - triangles;}
-			long GetId(const BamgVertex & t) const  { return &t - vertices;}
-			long GetId(const BamgVertex * t) const  { return t - vertices;}
-			long GetId(const Edge & t) const  { return &t - edges;}
-			long GetId(const Edge * t) const  { return t - edges;}
-			long Number2(const Triangle * t) const  { return t - triangles; }
+			long GetId(const Triangle & t) const;
+			long GetId(const Triangle * t) const;
+			long GetId(const BamgVertex & t) const;
+			long GetId(const BamgVertex * t) const;
+			long GetId(const Edge & t) const;
+			long GetId(const Edge * t) const;
+			long Number2(const Triangle * t) const;
 			BamgVertex* NearestVertex(Icoor1 i,Icoor1 j) ;
 			Triangle* TriangleFindFromCoord(const I2 & ,Icoor2 [3],Triangle *tstart=0) const;
@@ -123,5 +119,5 @@
 			void BuildMetric1(BamgOpts* bamgopts);
 			void AddGeometryMetric(BamgOpts* bamgopts);
-			int  isCracked() const {return NbCrackedVertices != 0;}
+			int  isCracked() const;
 			void BuildGeometryFromMesh(BamgOpts* bamgopts=NULL);
 			void ReconstructExistingMesh();
Index: /issm/trunk/src/c/objects/Bamg/QuadTree.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/QuadTree.cpp	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/QuadTree.cpp	(revision 5150)
@@ -455,4 +455,9 @@
 	}
 	/*}}}1*/
+	/*FUNCTION QuadTree::SizeOf{{{1*/
+	long QuadTree::SizeOf() const {
+		return sizeof(QuadTree)+sb->SizeOf();
+	}
+	/*}}}1*/
 	/*FUNCTION QuadTree::StorageQuadTreeBox::StorageQuadTreeBox{{{1*/
 	QuadTree::StorageQuadTreeBox::StorageQuadTreeBox(long ll,StorageQuadTreeBox *nn) {
@@ -472,5 +477,5 @@
 	/*}}}1*/
 	/*FUNCTION QuadTree::ToClose {{{1*/
-	BamgVertex *   QuadTree::ToClose(BamgVertex & v,double seuil,Icoor1 hx,Icoor1 hy){
+	BamgVertex*   QuadTree::ToClose(BamgVertex & v,double seuil,Icoor1 hx,Icoor1 hy){
 		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, QuadTree.cpp/ToClose)*/
 
Index: /issm/trunk/src/c/objects/Bamg/QuadTree.h
===================================================================
--- /issm/trunk/src/c/objects/Bamg/QuadTree.h	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/QuadTree.h	(revision 5150)
@@ -14,6 +14,8 @@
 
 	class QuadTree{
+
 		private:
-			class QuadTreeBox { 
+
+			class QuadTreeBox{ 
 				public:
 					long n; 
@@ -25,5 +27,5 @@
 					};
 			};
-			class StorageQuadTreeBox {
+			class StorageQuadTreeBox{
 				public:
 					QuadTreeBox *b,*bc,*be;
@@ -41,7 +43,9 @@
 
 		public:
+
 			//fields
 			QuadTreeBox* root;
 			Mesh*   th;
+
 			//functions
 			~QuadTree();
@@ -53,7 +57,10 @@
 			BamgVertex* NearestVertexWithNormal(Icoor1 i,Icoor1 j);
 			BamgVertex* ToClose(BamgVertex & ,double ,Icoor1,Icoor1);
-			long    SizeOf() const {return sizeof(QuadTree)+sb->SizeOf();}
+			long    SizeOf() const;
 			void    Add( BamgVertex & w);
-			QuadTreeBox* NewQuadTreeBox(){
+
+			/*The following function cannot be in the cpp file because QuadTreeBox is
+			 * a private class and is declared before QuadTree::*/
+			QuadTreeBox* NewQuadTreeBox(void){
 				if(! (sb->bc<sb->be)) sb=new StorageQuadTreeBox(lenStorageQuadTreeBox,sb);
 				if (!sb || (sb->bc->n != 0)){ISSMERROR("!sb || (sb->bc->n != 0)");}
Index: /issm/trunk/src/c/objects/Bamg/SetOfE4.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/SetOfE4.cpp	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/SetOfE4.cpp	(revision 5150)
@@ -26,31 +26,4 @@
 
 	/*Methods*/ 
-	/*FUNCTION  SetOfEdges4::find {{{1*/
-	long SetOfEdges4::find(long ii,long jj) { 
-		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, SetOfEdges4.cpp/find)*/
-
-		/*Intermediary*/
-		int n;
-
-		//check that head is not empty
-		ISSMASSERT(head);
-
-		//get n from h (usually h=ii)
-		n=head[Abs(ii)%nx];
-
-		//go through the existing edges that holds h (=ii) and return position in Edge
-		while (n >= 0){
-
-			//if the edge ii jj is already in Edges, return n
-			if (ii == Edges[n].i && jj == Edges[n].j) return n;
-
-			//else go to next edge that holds ii
-			else n = Edges[n].next;
-		}
-
-		//if we reach this point, the edge does not exist return -1
-		return -1;
-	}
-	/*}}}1*/
 	/*FUNCTION  SetOfEdges4::add{{{1*/
 	long SetOfEdges4::add(long ii,long jj) {
@@ -88,3 +61,60 @@
 	}
 	/*}}}1*/
+	/*FUNCTION  SetOfEdges4::find {{{1*/
+	long SetOfEdges4::find(long ii,long jj) { 
+		/*Original code from Frederic Hecht <hecht@ann.jussieu.fr> (BAMG v1.01, SetOfEdges4.cpp/find)*/
+
+		/*Intermediary*/
+		int n;
+
+		//check that head is not empty
+		ISSMASSERT(head);
+
+		//get n from h (usually h=ii)
+		n=head[Abs(ii)%nx];
+
+		//go through the existing edges that holds h (=ii) and return position in Edge
+		while (n >= 0){
+
+			//if the edge ii jj is already in Edges, return n
+			if (ii == Edges[n].i && jj == Edges[n].j) return n;
+
+			//else go to next edge that holds ii
+			else n = Edges[n].next;
+		}
+
+		//if we reach this point, the edge does not exist return -1
+		return -1;
+	}
+	/*}}}1*/
+	/*FUNCTION  SetOfEdges4::i{{{1*/
+	long SetOfEdges4::i(long k){
+		return Edges[k].i;
+	}
+	/*}}}1*/
+	/*FUNCTION  SetOfEdges4::j{{{1*/
+	long SetOfEdges4::j(long k){
+		return Edges[k].j;
+	}
+	/*}}}1*/
+	/*FUNCTION  SetOfEdges4::nb{{{1*/
+	long SetOfEdges4::nb(){
+		return NbOfEdges;
+	}
+	/*}}}1*/
+	/*FUNCTION  SetOfEdges4::newarete{{{1*/
+	long SetOfEdges4::newarete(long k){
+		return NbOfEdges == k+1;
+	}
+	/*}}}1*/
+	/*FUNCTION  SetOfEdges4::SortAndAdd{{{1*/
+	long SetOfEdges4::SortAndAdd (long ii,long jj) {
+		return ii <=jj ? add (ii,jj)  : add (jj,ii) ;
+	}
+	/*}}}1*/
+	/*FUNCTION  SetOfEdges4::SortAndFind{{{1*/
+	long SetOfEdges4::SortAndFind (long ii,long jj) {
+		return ii <=jj ? find (ii,jj)  : find (jj,ii) ;
+	}
+	/*}}}1*/
 }
Index: /issm/trunk/src/c/objects/Bamg/SetOfE4.h
===================================================================
--- /issm/trunk/src/c/objects/Bamg/SetOfE4.h	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/SetOfE4.h	(revision 5150)
@@ -31,11 +31,11 @@
 			//Methods
 			long add (long ii,long jj);
-			long SortAndAdd (long ii,long jj) {return ii <=jj ? add (ii,jj)  : add (jj,ii) ;}
-			long nb(){return NbOfEdges;}
+			long SortAndAdd (long ii,long jj);
+			long nb();
 			long find (long ii,long jj);
-			long SortAndFind (long ii,long jj) {return ii <=jj ? find (ii,jj)  : find (jj,ii) ;}
-			long i(long k){return Edges[k].i;}
-			long j(long k){return Edges[k].j;}
-			long newarete(long k){return NbOfEdges == k+1;}
+			long SortAndFind (long ii,long jj);
+			long i(long k);
+			long j(long k);
+			long newarete(long k);
 	};
 }
Index: /issm/trunk/src/c/objects/Bamg/VertexOnEdge.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/VertexOnEdge.cpp	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/VertexOnEdge.cpp	(revision 5150)
@@ -18,4 +18,10 @@
 	}
 	/*}}}*/
+	/*FUNCTION VertexOnEdge::SetOnBTh{{{1*/
+	void VertexOnEdge::SetOnBTh(){
+		v->BackgroundEdgeHook=this;
+		v->vint=IsVertexOnEdge;  
+	}
+	/*}}}*/
 
 } 
Index: /issm/trunk/src/c/objects/Bamg/VertexOnEdge.h
===================================================================
--- /issm/trunk/src/c/objects/Bamg/VertexOnEdge.h	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/VertexOnEdge.h	(revision 5150)
@@ -29,5 +29,5 @@
 
 			//Methods
-			void SetOnBTh(){v->BackgroundEdgeHook=this;v->vint=IsVertexOnEdge;}  
+			void SetOnBTh();
 			void Set(const Mesh &,long,Mesh &);  
 	};
Index: /issm/trunk/src/c/objects/Bamg/VertexOnGeom.cpp
===================================================================
--- /issm/trunk/src/c/objects/Bamg/VertexOnGeom.cpp	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/VertexOnGeom.cpp	(revision 5150)
@@ -11,4 +11,19 @@
 
 	/*Constructors/Destructors*/
+	/*FUNCTION VertexOnGeom::constructor{{{1*/
+	VertexOnGeom::VertexOnGeom(): mv(0),abscisse(0){
+		gv=0;
+	} 
+	/*}}}*/
+	/*FUNCTION VertexOnGeom::constructor{{{1*/
+	VertexOnGeom::VertexOnGeom(BamgVertex & m,GeometricalVertex &g) : mv(&m),abscisse(-1){
+		gv=&g;
+	}
+	/*}}}*/
+	/*FUNCTION VertexOnGeom::constructor{{{1*/
+	VertexOnGeom::VertexOnGeom(BamgVertex & m,GeometricalEdge &g,double s) : mv(&m),abscisse(s){
+		ge=&g;
+	}
+	/*}}}*/
 
 	/*Methods*/
@@ -25,4 +40,25 @@
 	}
 	/*}}}*/
+	/*FUNCTION VertexOnGeom::OnGeomVertex{{{1*/
+	int VertexOnGeom::OnGeomVertex()const{
+		return this? abscisse <0 :0;
+	}
+	/*}}}*/
+	/*FUNCTION VertexOnGeom::OnGeomEdge{{{1*/
+	int VertexOnGeom::OnGeomEdge() const{
+		return this? abscisse >=0 :0;
+	}
+	/*}}}*/
+	/*FUNCTION VertexOnGeom::IsRequiredVertex{{{1*/
+	int VertexOnGeom::IsRequiredVertex() {
+		return this? ((abscisse<0 ? (gv?gv->Required():0):0 )) : 0;
+	}
+	/*}}}*/
+	/*FUNCTION VertexOnGeom::SetOn{{{1*/
+	void VertexOnGeom::SetOn(){
+		mv->GeometricalEdgeHook=this;
+		mv->vint=IsVertexOnGeom;
+	}
+	/*}}}*/
 
 } 
Index: /issm/trunk/src/c/objects/Bamg/VertexOnGeom.h
===================================================================
--- /issm/trunk/src/c/objects/Bamg/VertexOnGeom.h	(revision 5149)
+++ /issm/trunk/src/c/objects/Bamg/VertexOnGeom.h	(revision 5150)
@@ -24,7 +24,7 @@
 
 			//Constructors/Destructors
-			VertexOnGeom(): mv(0),abscisse(0){gv=0;} 
-			VertexOnGeom(BamgVertex & m,GeometricalVertex &g) : mv(&m),abscisse(-1){gv=&g;}
-			VertexOnGeom(BamgVertex & m,GeometricalEdge &g,double s) : mv(&m),abscisse(s){ge=&g;}
+			VertexOnGeom();
+			VertexOnGeom(BamgVertex & m,GeometricalVertex &g);
+			VertexOnGeom(BamgVertex & m,GeometricalEdge &g,double s);
 
 			//Operators
@@ -35,8 +35,8 @@
 
 			//Methods
-			int  OnGeomVertex()const{return this? abscisse <0 :0;}
-			int  OnGeomEdge() const {return this? abscisse >=0 :0;}
-			int  IsRequiredVertex() {return this? ((abscisse<0 ? (gv?gv->Required():0):0 )) : 0;}
-			void SetOn(){mv->GeometricalEdgeHook=this;mv->vint=IsVertexOnGeom;}
+			int  OnGeomVertex()const;
+			int  OnGeomEdge() const;
+			int  IsRequiredVertex();
+			void SetOn();
 
 			//Inline methods
