diff --git a/Mesh/simple3D.cpp b/Mesh/simple3D.cpp index 14ae82855fba30c6e63f286be2fd14fe52dffc3f..fbbf07d25d86a937bc71bceb2e9c734bf91946b8 100644 --- a/Mesh/simple3D.cpp +++ b/Mesh/simple3D.cpp @@ -348,18 +348,19 @@ void Filler::treat_region(GRegion* gr){ Frame_field::init_region(gr); - int NumSmooth = CTX::instance()->mesh.nbSmoothing; - int NumIter = 1; - double eold; - Frame_field::init(gr); - double enew = Frame_field::smooth(gr); - if( NumSmooth >1){ + int NumSmooth = CTX::instance()->mesh.smoothCrossField; + if(NumSmooth){ + Frame_field::init(gr); + Frame_field::save(gr,"cross_init.pos"); + double enew = Frame_field::smooth(gr); + int NumIter = 0; + double eold = 0; do{ std::cout << "Smoothing: energy(" << NumIter << ") = " << enew << std::endl; eold = enew; enew = Frame_field::smooth(gr); } while((eold > enew) && (NumIter++ < NumSmooth)); - Frame_field::save(gr,"smoothed.pos"); + Frame_field::save(gr,"cross_smooth.pos"); Frame_field::fillTreeVolume(gr); } @@ -474,7 +475,7 @@ void Filler::treat_region(GRegion* gr){ Metric Filler::get_metric(double x,double y,double z){ Metric m; Matrix m2; - if(CTX::instance()->mesh.nbSmoothing <= 1) + if(CTX::instance()->mesh.smoothCrossField) m2 = Frame_field::search(x,y,z); else m2 = Frame_field::findNearestCross(x,y,z);