diff --git a/Plugin/Smooth.cpp b/Plugin/Smooth.cpp index 024f6f0075217ad0209f875e97f1c18e3eecd9bf..fb0b84352274f0df345c2f4b63cb0677f1299518 100644 --- a/Plugin/Smooth.cpp +++ b/Plugin/Smooth.cpp @@ -1,4 +1,4 @@ -// $Id: Smooth.cpp,v 1.28 2007-09-11 15:29:02 geuzaine Exp $ +// $Id: Smooth.cpp,v 1.29 2007-09-15 15:47:05 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -80,6 +80,7 @@ PView *GMSH_SmoothPlugin::execute(PView *v) if(!v1) return v; v1->getData()->smooth(); + v1->setChanged(true); return v1; } diff --git a/Post/PViewDataList.cpp b/Post/PViewDataList.cpp index d4126325f9768240dc1cf9fcf31b60d199b9ef0c..b37e6b3915c390266bab1efc1a7ddb8e8541b48e 100644 --- a/Post/PViewDataList.cpp +++ b/Post/PViewDataList.cpp @@ -1,4 +1,4 @@ -// $Id: PViewDataList.cpp,v 1.8 2007-09-11 22:53:35 geuzaine Exp $ +// $Id: PViewDataList.cpp,v 1.9 2007-09-15 15:47:05 geuzaine Exp $ // // Copyright (C) 1997-2007 C. Geuzaine, J.-F. Remacle // @@ -548,9 +548,8 @@ void PViewDataList::_splitCurvedElements() splitCurvedElement(&TY2, &NbTY2, TS, &NbTS, 14,4, 9, 4, pyr2); } -static void generateConnectivities(List_T *list, int nbList, - int nbTimeStep, int nbVert, - smooth_data &data) +static void generateConnectivities(List_T *list, int nbList, int nbTimeStep, + int nbVert, smooth_data &data) { if(!nbList) return; double *vals = new double[nbTimeStep]; @@ -569,9 +568,8 @@ static void generateConnectivities(List_T *list, int nbList, delete [] vals; } -static void smoothList(List_T *list, int nbList, double &min, double &max, - std::vector<double> &tsmin, std::vector<double> &tsmax, - int nbTimeStep, int nbVert, smooth_data &data) +static void smoothList(List_T *list, int nbList, int nbTimeStep, + int nbVert, smooth_data &data) { if(!nbList) return; double *vals = new double[nbTimeStep]; @@ -583,14 +581,8 @@ static void smoothList(List_T *list, int nbList, double &min, double &max, double *v = (double *)List_Pointer_Fast(list, i + 3 * nbVert); for(int j = 0; j < nbVert; j++) { if(data.get(x[j], y[j], z[j], nbTimeStep, vals)){ - for(int k = 0; k < nbTimeStep; k++) { - double dd = vals[k]; - v[j + k * nbVert] = dd; - min = std::min(min, dd); - max = std::max(max, dd); - tsmin[k] = std::min(tsmin[k], dd); - tsmax[k] = std::max(tsmax[k], dd); - } + for(int k = 0; k < nbTimeStep; k++) + v[j + k * nbVert] = vals[k]; } } } @@ -601,34 +593,23 @@ void PViewDataList::smooth() { double old_eps = xyzv::eps; xyzv::eps = CTX.lc * 1.e-8; - - if(NbSL || NbST || NbSQ || NbSS || NbSH || NbSI || NbSY) { - Min = VAL_INF; - Max = -VAL_INF; - TimeStepMin.clear(); - TimeStepMax.clear(); - for(int j = 0; j < NbTimeStep; j++){ - TimeStepMin.push_back(VAL_INF); - TimeStepMax.push_back(-VAL_INF); - } - smooth_data data; - generateConnectivities(SL, NbSL, NbTimeStep, 2, data); - generateConnectivities(ST, NbST, NbTimeStep, 3, data); - generateConnectivities(SQ, NbSQ, NbTimeStep, 4, data); - generateConnectivities(SS, NbSS, NbTimeStep, 4, data); - generateConnectivities(SH, NbSH, NbTimeStep, 8, data); - generateConnectivities(SI, NbSI, NbTimeStep, 6, data); - generateConnectivities(SY, NbSY, NbTimeStep, 5, data); - smoothList(SL, NbSL, Min, Max, TimeStepMin, TimeStepMax, NbTimeStep, 2, data); - smoothList(ST, NbST, Min, Max, TimeStepMin, TimeStepMax, NbTimeStep, 3, data); - smoothList(SQ, NbSQ, Min, Max, TimeStepMin, TimeStepMax, NbTimeStep, 4, data); - smoothList(SS, NbSS, Min, Max, TimeStepMin, TimeStepMax, NbTimeStep, 4, data); - smoothList(SH, NbSH, Min, Max, TimeStepMin, TimeStepMax, NbTimeStep, 8, data); - smoothList(SI, NbSI, Min, Max, TimeStepMin, TimeStepMax, NbTimeStep, 6, data); - smoothList(SY, NbSY, Min, Max, TimeStepMin, TimeStepMax, NbTimeStep, 5, data); - } - - xyzv::eps = old_eps; + smooth_data data; + generateConnectivities(SL, NbSL, NbTimeStep, 2, data); + generateConnectivities(ST, NbST, NbTimeStep, 3, data); + generateConnectivities(SQ, NbSQ, NbTimeStep, 4, data); + generateConnectivities(SS, NbSS, NbTimeStep, 4, data); + generateConnectivities(SH, NbSH, NbTimeStep, 8, data); + generateConnectivities(SI, NbSI, NbTimeStep, 6, data); + generateConnectivities(SY, NbSY, NbTimeStep, 5, data); + smoothList(SL, NbSL, NbTimeStep, 2, data); + smoothList(ST, NbST, NbTimeStep, 3, data); + smoothList(SQ, NbSQ, NbTimeStep, 4, data); + smoothList(SS, NbSS, NbTimeStep, 4, data); + smoothList(SH, NbSH, NbTimeStep, 8, data); + smoothList(SI, NbSI, NbTimeStep, 6, data); + smoothList(SY, NbSY, NbTimeStep, 5, data); + xyzv::eps = old_eps; + finalize(); } bool PViewDataList::combineSpace(nameData &nd)