From 7ab038c6014d2c30202812d6305a60cbed055b09 Mon Sep 17 00:00:00 2001 From: Francois Henrotte <francois.henrotte@ulg.ac.be> Date: Tue, 19 Feb 2013 11:51:59 +0000 Subject: [PATCH] bug fix --- Mesh/Matrix.h | 2 +- Mesh/cross3D.h | 2 ++ Mesh/directions3D.cpp | 15 +++++++++------ Mesh/simple3D.cpp | 10 +++++----- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Mesh/Matrix.h b/Mesh/Matrix.h index e721bf8c94..81ef1227aa 100644 --- a/Mesh/Matrix.h +++ b/Mesh/Matrix.h @@ -39,7 +39,7 @@ class Matrix{ double get_m31(){ return m31; } double get_m12(){ return m12; } double get_m22(){ return m22; } - double get_m32(){ return m23; } + double get_m32(){ return m32; } double get_m13(){ return m13; } double get_m23(){ return m23; } double get_m33(){ return m33; } diff --git a/Mesh/cross3D.h b/Mesh/cross3D.h index 8c4a3553ae..990805c32e 100644 --- a/Mesh/cross3D.h +++ b/Mesh/cross3D.h @@ -13,6 +13,8 @@ #include "stat_quatern.h" using namespace CwMtx; +#include "Matrix.h" + //double max(const double a, const double b) { return (b>a)?b:a;} double min(const double a, const double b) { return (b<a)?b:a; } double squ(const double a) { return a*a; } diff --git a/Mesh/directions3D.cpp b/Mesh/directions3D.cpp index 2b869e864d..3bfa04943e 100644 --- a/Mesh/directions3D.cpp +++ b/Mesh/directions3D.cpp @@ -549,30 +549,31 @@ void Frame_field::save(GRegion* gr, const std::string& filename){ m = itA->second; p = SPoint3(pVertex->x(),pVertex->y(),pVertex->z()); + double val1=0, val2=0; p1 = SPoint3(pVertex->x() + k*m.get_m11(), pVertex->y() + k*m.get_m21(), pVertex->z() + k*m.get_m31()); - print_segment(p,p1,pVertex->z(),pVertex->z(),file); + print_segment(p,p1,val1,val2,file); p1 = SPoint3(pVertex->x() - k*m.get_m11(), pVertex->y() - k*m.get_m21(), pVertex->z() - k*m.get_m31()); - print_segment(p,p1,pVertex->z(),pVertex->z(),file); + print_segment(p,p1,val1,val2,file); p1 = SPoint3(pVertex->x() + k*m.get_m12(), pVertex->y() + k*m.get_m22(), pVertex->z() + k*m.get_m32()); - print_segment(p,p1,pVertex->z(),pVertex->z(),file); + print_segment(p,p1,val1,val2,file); p1 = SPoint3(pVertex->x() - k*m.get_m12(), pVertex->y() - k*m.get_m22(), pVertex->z() - k*m.get_m32()); - print_segment(p,p1,pVertex->z(),pVertex->z(),file); + print_segment(p,p1,val1,val2,file); p1 = SPoint3(pVertex->x() + k*m.get_m13(), pVertex->y() + k*m.get_m23(), pVertex->z() + k*m.get_m33()); - print_segment(p,p1,pVertex->z(),pVertex->z(),file); + print_segment(p,p1,val1,val2,file); p1 = SPoint3(pVertex->x() - k*m.get_m13(), pVertex->y() - k*m.get_m23(), pVertex->z() - k*m.get_m33()); - print_segment(p,p1,pVertex->z(),pVertex->z(),file); + print_segment(p,p1,val1,val2,file); } file << "};\n"; file.close(); @@ -584,6 +585,7 @@ void Frame_field::fillTreeVolume(GRegion* gr){ std::cout << "Filling ANN tree with " << n << " vertices" << std::endl; annTreeData = annAllocPts(n,3); int index=0; + vertIndices.clear(); for(std::map<MVertex*, std::set<MVertex*> >::iterator iter = crossData.vertex_to_vertices.begin(); iter != crossData.vertex_to_vertices.end(); ++iter){ MVertex* pVertex = iter->first; @@ -591,6 +593,7 @@ void Frame_field::fillTreeVolume(GRegion* gr){ annTreeData[index][1] = pVertex->y(); annTreeData[index][2] = pVertex->z(); vertIndices.push_back(pVertex->getNum()); + index++; } annTree = new ANNkd_tree(annTreeData,n,3); #endif diff --git a/Mesh/simple3D.cpp b/Mesh/simple3D.cpp index c17f71e570..14ae82855f 100644 --- a/Mesh/simple3D.cpp +++ b/Mesh/simple3D.cpp @@ -349,7 +349,7 @@ void Filler::treat_region(GRegion* gr){ Frame_field::init_region(gr); int NumSmooth = CTX::instance()->mesh.nbSmoothing; - int NumIter = 0; + int NumIter = 1; double eold; Frame_field::init(gr); double enew = Frame_field::smooth(gr); @@ -384,6 +384,8 @@ void Filler::treat_region(GRegion* gr){ boundary_vertices.push_back(*it); } } + std::ofstream file("nodes.pos"); + file << "View \"test\" {\n"; for(i=0;i<boundary_vertices.size();i++){ x = boundary_vertices[i]->x(); @@ -394,11 +396,9 @@ void Filler::treat_region(GRegion* gr){ compute_parameters(node,gr); rtree.Insert(node->min,node->max,node); fifo.push(node); + print_node(node,file); } - //std::ofstream file("nodes.pos"); - //file << "View \"test\" {\n"; - count = 1; while(!fifo.empty()){ parent = fifo.front(); @@ -448,7 +448,7 @@ void Filler::treat_region(GRegion* gr){ count++; } - //file << "};\n"; + file << "};\n"; int option = CTX::instance()->mesh.algo3d; CTX::instance()->mesh.algo3d = ALGO_3D_DELAUNAY; -- GitLab