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