diff --git a/Common/Views.cpp b/Common/Views.cpp index 8d9158cde0a360e42bad73f38e613cbb578a0e0f..cf23fa21a665f6f2fa8f732467ea48521bf3f1b0 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,4 +1,4 @@ -// $Id: Views.cpp,v 1.153 2004-12-26 19:50:16 geuzaine Exp $ +// $Id: Views.cpp,v 1.154 2004-12-27 21:05:06 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -1210,34 +1210,34 @@ void generate_connectivities(List_T * list, int nbList, int nbTimeStep, int nbVe delete[]vals; } -void smooth_list(List_T * list, int nbList, double *min, double *max, +void smooth_list(List_T * list, int nbList, + double *min, double *max, double *tsmin, double *tsmax, int nbTimeStep, int nbVert, xyzcont & connectivities) { - double *x, *y, *z, *v; - int i, j, k; - if(!nbList) return; - *min = VAL_INF; - *max = -VAL_INF; - int nb = List_Nbr(list)/nbList; - for(i = 0; i < List_Nbr(list); i += nb) { - x = (double *)List_Pointer_Fast(list, i); - y = (double *)List_Pointer_Fast(list, i + nbVert); - z = (double *)List_Pointer_Fast(list, i + 2 * nbVert); - v = (double *)List_Pointer_Fast(list, i + 3 * nbVert); - for(j = 0; j < nbVert; j++) { + for(int i = 0; i < List_Nbr(list); i += nb) { + double *x = (double *)List_Pointer_Fast(list, i); + double *y = (double *)List_Pointer_Fast(list, i + nbVert); + double *z = (double *)List_Pointer_Fast(list, i + 2 * nbVert); + double *v = (double *)List_Pointer_Fast(list, i + 3 * nbVert); + for(int j = 0; j < nbVert; j++) { xyzv xyz(x[j], y[j], z[j]); xyziter it = connectivities.find(xyz); if(it != connectivities.end()) { - for(k = 0; k < nbTimeStep; k++) { - v[j + k * nbVert] = (*it).vals[k]; - if(v[j + k * nbVert] < *min) - *min = v[j + k * nbVert]; - if(v[j + k * nbVert] > *max) - *max = v[j + k * nbVert]; + for(int k = 0; k < nbTimeStep; k++) { + double dd = (*it).vals[k]; + v[j + k * nbVert] = dd; + if(dd < *min) + *min = dd; + if(dd > *max) + *max = dd; + if(dd < tsmin[k]) + tsmin[k] = dd; + if(dd > tsmax[k]) + tsmax[k] = dd; } } } @@ -1252,6 +1252,12 @@ void Post_View::smooth() if(NbSL || NbST || NbSQ || NbSS || NbSH || NbSI || NbSY) { xyzcont con; Msg(INFO, "Smoothing scalar primitives in View[%d]", Index); + Min = VAL_INF; + Max = -VAL_INF; + for(int k = 0; k < NbTimeStep; k++) { + TimeStepMin[k] = VAL_INF; + TimeStepMax[k] = -VAL_INF; + } generate_connectivities(SL, NbSL, NbTimeStep, 2, con); generate_connectivities(ST, NbST, NbTimeStep, 3, con); generate_connectivities(SQ, NbSQ, NbTimeStep, 4, con); @@ -1259,13 +1265,13 @@ void Post_View::smooth() generate_connectivities(SH, NbSH, NbTimeStep, 8, con); generate_connectivities(SI, NbSI, NbTimeStep, 6, con); generate_connectivities(SY, NbSY, NbTimeStep, 5, con); - smooth_list(SL, NbSL, &Min, &Max, NbTimeStep, 2, con); - smooth_list(ST, NbST, &Min, &Max, NbTimeStep, 3, con); - smooth_list(SQ, NbSQ, &Min, &Max, NbTimeStep, 4, con); - smooth_list(SS, NbSS, &Min, &Max, NbTimeStep, 4, con); - smooth_list(SH, NbSH, &Min, &Max, NbTimeStep, 8, con); - smooth_list(SI, NbSI, &Min, &Max, NbTimeStep, 6, con); - smooth_list(SY, NbSY, &Min, &Max, NbTimeStep, 5, con); + smooth_list(SL, NbSL, &Min, &Max, TimeStepMin, TimeStepMax, NbTimeStep, 2, con); + smooth_list(ST, NbST, &Min, &Max, TimeStepMin, TimeStepMax, NbTimeStep, 3, con); + smooth_list(SQ, NbSQ, &Min, &Max, TimeStepMin, TimeStepMax, NbTimeStep, 4, con); + smooth_list(SS, NbSS, &Min, &Max, TimeStepMin, TimeStepMax, NbTimeStep, 4, con); + smooth_list(SH, NbSH, &Min, &Max, TimeStepMin, TimeStepMax, NbTimeStep, 8, con); + smooth_list(SI, NbSI, &Min, &Max, TimeStepMin, TimeStepMax, NbTimeStep, 6, con); + smooth_list(SY, NbSY, &Min, &Max, TimeStepMin, TimeStepMax, NbTimeStep, 5, con); Changed = 1; }