From 3c48849c7f63b9a1f7667d6130ed2040ade14fe5 Mon Sep 17 00:00:00 2001
From: Tristan Carrier Baudouin <tristan.carrier@uclouvain.be>
Date: Tue, 26 Feb 2013 10:31:17 +0000
Subject: [PATCH] centerline field

---
 Mesh/simple3D.cpp | 34 ++++++++++++++++++++++++++++++++++
 Mesh/simple3D.h   |  1 +
 2 files changed, 35 insertions(+)

diff --git a/Mesh/simple3D.cpp b/Mesh/simple3D.cpp
index 8183bfb98a..87e8106765 100644
--- a/Mesh/simple3D.cpp
+++ b/Mesh/simple3D.cpp
@@ -495,6 +495,40 @@ Metric Filler::get_metric(double x,double y,double z){
   return m;
 }
 
+Metric Filler::get_metric(double x,double y,double z,GEntity* ge){
+  Metric m;
+  SMetric3 temp;
+  SVector3 v1,v2,v3;
+  Field* field;
+  FieldManager* manager;
+	
+  v1 = SVector3(1.0,0.0,0.0);
+  v2 = SVector3(0.0,1.0,0.0);
+  v3 = SVector3(0.0,0.0,1.0);
+	
+  manager = ge->model()->getFields();
+  if(manager->getBackgroundField()>0){
+    field = manager->get(manager->getBackgroundField());
+    if(field){
+      (*field)(x,y,z,temp,ge);
+    }
+  }
+	
+  m.set_m11(v1.x());
+  m.set_m21(v1.y());
+  m.set_m31(v1.z());
+	
+  m.set_m12(v2.x());
+  m.set_m22(v2.y());
+  m.set_m32(v2.z());
+	
+  m.set_m13(v3.x());
+  m.set_m23(v3.y());
+  m.set_m33(v3.z());
+	
+  return m;
+}
+
 double Filler::get_size(double x,double y,double z){
   return Size_field::search(x,y,z);
 }
diff --git a/Mesh/simple3D.h b/Mesh/simple3D.h
index 2736df3165..6fd3f06010 100644
--- a/Mesh/simple3D.h
+++ b/Mesh/simple3D.h
@@ -18,6 +18,7 @@ class Filler{
  private:
   static std::vector<MVertex*> new_vertices;
   Metric get_metric(double,double,double);
+  Metric get_metric(double,double,double,GEntity*);
   double get_size(double,double,double);
   double get_size(double,double,double,GEntity*);
   bool inside_domain(MElementOctree*,double,double,double);
-- 
GitLab