Skip to content
Snippets Groups Projects
Commit 31df27e3 authored by Tristan Carrier Baudouin's avatar Tristan Carrier Baudouin
Browse files

hexahedra

parent 826f311a
No related branches found
No related tags found
No related merge requests found
...@@ -56,6 +56,7 @@ class Metric{ ...@@ -56,6 +56,7 @@ class Metric{
class Node{ class Node{
private: private:
int layer;
double h; double h;
Metric m; Metric m;
SPoint3 point; SPoint3 point;
...@@ -65,9 +66,11 @@ class Node{ ...@@ -65,9 +66,11 @@ class Node{
Node(); Node();
Node(SPoint3); Node(SPoint3);
~Node(); ~Node();
void set_layer(int);
void set_size(double); void set_size(double);
void set_metric(Metric); void set_metric(Metric);
void set_point(SPoint3); void set_point(SPoint3);
int get_layer();
double get_size(); double get_size();
Metric get_metric(); Metric get_metric();
SPoint3 get_point(); SPoint3 get_point();
...@@ -242,6 +245,10 @@ Node::Node(SPoint3 new_point){ ...@@ -242,6 +245,10 @@ Node::Node(SPoint3 new_point){
Node::~Node(){} Node::~Node(){}
void Node::set_layer(int new_layer){
layer = new_layer;
}
void Node::set_size(double new_h){ void Node::set_size(double new_h){
h = new_h; h = new_h;
} }
...@@ -254,6 +261,10 @@ void Node::set_point(SPoint3 new_point){ ...@@ -254,6 +261,10 @@ void Node::set_point(SPoint3 new_point){
point = new_point; point = new_point;
} }
int Node::get_layer(){
return layer;
}
double Node::get_size(){ double Node::get_size(){
return h; return h;
} }
...@@ -350,12 +361,15 @@ void Filler::treat_region(GRegion* gr){ ...@@ -350,12 +361,15 @@ void Filler::treat_region(GRegion* gr){
MElementOctree* octree; MElementOctree* octree;
deMeshGRegion deleter; deMeshGRegion deleter;
Wrapper wrapper; Wrapper wrapper;
GFace* gf;
std::queue<Node*> fifo; std::queue<Node*> fifo;
std::vector<Node*> spawns; std::vector<Node*> spawns;
std::vector<Node*> garbage; std::vector<Node*> garbage;
std::vector<MVertex*> boundary_vertices; std::vector<MVertex*> boundary_vertices;
std::set<MVertex*> temp; std::set<MVertex*> temp;
std::list<GFace*> faces;
std::set<MVertex*>::iterator it; std::set<MVertex*>::iterator it;
std::list<GFace*>::iterator it2;
RTree<Node*,double,3,double> rtree; RTree<Node*,double,3,double> rtree;
Frame_field::init_region(gr); Frame_field::init_region(gr);
...@@ -366,7 +380,20 @@ void Filler::treat_region(GRegion* gr){ ...@@ -366,7 +380,20 @@ void Filler::treat_region(GRegion* gr){
boundary_vertices.clear(); boundary_vertices.clear();
temp.clear(); temp.clear();
new_vertices.clear(); new_vertices.clear();
faces.clear();
/*faces = gr->faces();
for(it2=faces.begin();it2!=faces.end();it2++){
gf = *it2;
for(i=0;i<gf->getNumMeshElements();i++){
element = gf->getMeshElement(i);
for(j=0;j<element->getNumVertices();j++){
vertex = element->getVertex(j);
temp.insert(vertex);
}
}
}*/
for(i=0;i<gr->getNumMeshElements();i++){ for(i=0;i<gr->getNumMeshElements();i++){
element = gr->getMeshElement(i); element = gr->getMeshElement(i);
for(j=0;j<element->getNumVertices();j++){ for(j=0;j<element->getNumVertices();j++){
...@@ -390,6 +417,7 @@ void Filler::treat_region(GRegion* gr){ ...@@ -390,6 +417,7 @@ void Filler::treat_region(GRegion* gr){
node = new Node(SPoint3(x,y,z)); node = new Node(SPoint3(x,y,z));
compute_parameters(node,gr); compute_parameters(node,gr);
node->set_layer(0);
rtree.Insert(node->min,node->max,node); rtree.Insert(node->min,node->max,node);
fifo.push(node); fifo.push(node);
//print_node(node,file); //print_node(node,file);
...@@ -420,6 +448,7 @@ void Filler::treat_region(GRegion* gr){ ...@@ -420,6 +448,7 @@ void Filler::treat_region(GRegion* gr){
if(inside_domain(octree,x,y,z)){ if(inside_domain(octree,x,y,z)){
compute_parameters(individual,gr); compute_parameters(individual,gr);
individual->set_layer(parent->get_layer()+1);
if(far_from_boundary(octree,individual)){ if(far_from_boundary(octree,individual)){
wrapper.set_ok(1); wrapper.set_ok(1);
wrapper.set_individual(individual); wrapper.set_individual(individual);
...@@ -462,6 +491,7 @@ void Filler::treat_region(GRegion* gr){ ...@@ -462,6 +491,7 @@ void Filler::treat_region(GRegion* gr){
for(i=0;i<new_vertices.size();i++) delete new_vertices[i]; for(i=0;i<new_vertices.size();i++) delete new_vertices[i];
new_vertices.clear(); new_vertices.clear();
delete octree; delete octree;
rtree.RemoveAll();
Size_field::clear(); Size_field::clear();
Frame_field::clear(); Frame_field::clear();
#endif #endif
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment