diff --git a/Common/Views.cpp b/Common/Views.cpp index 18d790278a059b2185aba7f7510e31b397acb3f3..15a7df57506f13660afb7c975b50a5c847431fbf 100644 --- a/Common/Views.cpp +++ b/Common/Views.cpp @@ -1,4 +1,4 @@ -/* $Id: Views.cpp,v 1.7 2000-11-27 10:58:18 geuzaine Exp $ */ +/* $Id: Views.cpp,v 1.8 2000-11-27 14:23:18 geuzaine Exp $ */ #include "Gmsh.h" #include "Views.h" @@ -103,19 +103,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name, if(ActualView->NbSP){ nb = List_Nbr(ActualView->SP) / ActualView->NbSP ; for(i = 0 ; i < List_Nbr(ActualView->SP) ; i+=nb) - Stat_ScalarSimplex(0, (double*)List_Pointer(ActualView->SP,i), + Stat_ScalarSimplex(1, (double*)List_Pointer(ActualView->SP,i), nb-3, (double*)List_Pointer(ActualView->SP,i+3)); } if(ActualView->NbVP){ nb = List_Nbr(ActualView->VP) / ActualView->NbVP ; for(i = 0 ; i < List_Nbr(ActualView->VP) ; i+=nb) - Stat_VectorSimplex(0, (double*)List_Pointer(ActualView->VP,i), + Stat_VectorSimplex(1, (double*)List_Pointer(ActualView->VP,i), nb-3, (double*)List_Pointer(ActualView->VP,i+3)); } if(ActualView->NbTP){ nb = List_Nbr(ActualView->TP) / ActualView->NbTP ; for(i = 0 ; i < List_Nbr(ActualView->TP) ; i+=nb) - Stat_TensorSimplex(0, (double*)List_Pointer(ActualView->TP,i), + Stat_TensorSimplex(1, (double*)List_Pointer(ActualView->TP,i), nb-3, (double*)List_Pointer(ActualView->TP,i+3)); } @@ -124,19 +124,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name, if(ActualView->NbSL){ nb = List_Nbr(ActualView->SL) / ActualView->NbSL ; for(i = 0 ; i < List_Nbr(ActualView->SL) ; i+=nb) - Stat_ScalarSimplex(1, (double*)List_Pointer(ActualView->SL,i), + Stat_ScalarSimplex(2, (double*)List_Pointer(ActualView->SL,i), nb-6, (double*)List_Pointer(ActualView->SL,i+6)); } if(ActualView->NbVL){ nb = List_Nbr(ActualView->VL) / ActualView->NbVL ; for(i = 0 ; i < List_Nbr(ActualView->VL) ; i+=nb) - Stat_VectorSimplex(1, (double*)List_Pointer(ActualView->VL,i), + Stat_VectorSimplex(2, (double*)List_Pointer(ActualView->VL,i), nb-6, (double*)List_Pointer(ActualView->VL,i+6)); } if(ActualView->NbTL){ nb = List_Nbr(ActualView->TL) / ActualView->NbTL ; for(i = 0 ; i < List_Nbr(ActualView->TL) ; i+=nb) - Stat_TensorSimplex(1, (double*)List_Pointer(ActualView->TL,i), + Stat_TensorSimplex(2, (double*)List_Pointer(ActualView->TL,i), nb-6, (double*)List_Pointer(ActualView->TL,i+6)); } @@ -145,19 +145,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name, if(ActualView->NbST){ nb = List_Nbr(ActualView->ST) / ActualView->NbST ; for(i = 0 ; i < List_Nbr(ActualView->ST) ; i+=nb) - Stat_ScalarSimplex(2, (double*)List_Pointer(ActualView->ST,i), + Stat_ScalarSimplex(3, (double*)List_Pointer(ActualView->ST,i), nb-9, (double*)List_Pointer(ActualView->ST,i+9)); } if(ActualView->NbVT){ nb = List_Nbr(ActualView->VT) / ActualView->NbVT ; for(i = 0 ; i < List_Nbr(ActualView->VT) ; i+=nb) - Stat_VectorSimplex(2, (double*)List_Pointer(ActualView->VT,i), + Stat_VectorSimplex(3, (double*)List_Pointer(ActualView->VT,i), nb-9, (double*)List_Pointer(ActualView->VT,i+9)); } if(ActualView->NbTT){ nb = List_Nbr(ActualView->TT) / ActualView->NbTT ; for(i = 0 ; i < List_Nbr(ActualView->TT) ; i+=nb) - Stat_TensorSimplex(2, (double*)List_Pointer(ActualView->TT,i), + Stat_TensorSimplex(3, (double*)List_Pointer(ActualView->TT,i), nb-9, (double*)List_Pointer(ActualView->TT,i+9)); } @@ -166,19 +166,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name, if(ActualView->NbSS){ nb = List_Nbr(ActualView->SS) / ActualView->NbSS ; for(i = 0 ; i < List_Nbr(ActualView->SS) ; i+=nb) - Stat_ScalarSimplex(3, (double*)List_Pointer(ActualView->SS,i), + Stat_ScalarSimplex(4, (double*)List_Pointer(ActualView->SS,i), nb-12, (double*)List_Pointer(ActualView->SS,i+12)); } if(ActualView->NbVS){ nb = List_Nbr(ActualView->VS) / ActualView->NbVS ; for(i = 0 ; i < List_Nbr(ActualView->VS) ; i+=nb) - Stat_VectorSimplex(3, (double*)List_Pointer(ActualView->VS,i), + Stat_VectorSimplex(4, (double*)List_Pointer(ActualView->VS,i), nb-12, (double*)List_Pointer(ActualView->VS,i+12)); } if(ActualView->NbTS){ nb = List_Nbr(ActualView->TS) / ActualView->NbTS ; for(i = 0 ; i < List_Nbr(ActualView->TS) ; i+=nb) - Stat_TensorSimplex(3, (double*)List_Pointer(ActualView->TS,i), + Stat_TensorSimplex(4, (double*)List_Pointer(ActualView->TS,i), nb-12, (double*)List_Pointer(ActualView->TS,i+12)); } @@ -290,20 +290,13 @@ void CopyViewOptions(Post_View *src, Post_View *dest){ /* S t a t _ X X X S i m p l e x */ /* ------------------------------------------------------------------------ */ -void Stat_ScalarSimplex(int dim, double *coord, int N, double *V){ - int i,nbnod; +void Stat_ScalarSimplex(int nbnod, double *coord, int N, double *V){ + int i; double *X, *Y, *Z; - switch(dim){ - case 0 : nbnod = 1 ; NbPoints++; break; - case 1 : nbnod = 2 ; NbLines++; break; - case 2 : nbnod = 3 ; NbTriangles++; break; - case 3 : nbnod = 4 ; NbTetrahedra++; break; - } - X = &coord[0] ; Y = &coord[nbnod] ; Z = &coord[2*nbnod] ; - if(NbPoints == 1 && NbLines == 1 && NbTriangles == 1 && NbTetrahedra == 1){ + if(!NbPoints && !NbLines && !NbTriangles && !NbTetrahedra){ ActualView->Min = V[0]; ActualView->Max = V[0]; ActualView->NbTimeStep = N/nbnod; @@ -315,23 +308,23 @@ void Stat_ScalarSimplex(int dim, double *coord, int N, double *V){ if(V[i] < ActualView->Min) ActualView->Min = V[i] ; if(V[i] > ActualView->Max) ActualView->Max = V[i] ; } + + switch(nbnod){ + case 1 : NbPoints++; break; + case 2 : NbLines++; break; + case 3 : NbTriangles++; break; + case 4 : NbTetrahedra++; break; + } } -void Stat_VectorSimplex(int dim, double *coord, int N, double *V){ +void Stat_VectorSimplex(int nbnod, double *coord, int N, double *V){ double l0; - int nbnod, i; + int i; double *X, *Y, *Z; - switch(dim){ - case 0 : nbnod = 1 ; NbPoints++; break; - case 1 : nbnod = 2 ; NbLines++; break; - case 2 : nbnod = 3 ; NbTriangles++; break; - case 3 : nbnod = 4 ; NbTetrahedra++; break; - } - X = &coord[0] ; Y = &coord[nbnod] ; Z = &coord[2*nbnod] ; - if(NbPoints == 1 && NbLines == 1 && NbTriangles == 1 && NbTetrahedra == 1){ + if(!NbPoints && !NbLines && !NbTriangles && !NbTetrahedra){ l0 = sqrt(DSQR(V[0])+DSQR(V[1])+DSQR(V[2])); ActualView->Min = l0; ActualView->Max = l0; @@ -346,10 +339,15 @@ void Stat_VectorSimplex(int dim, double *coord, int N, double *V){ if(l0 > ActualView->Max) ActualView->Max = l0 ; } - ActualView->ScalarOnly = 0; + switch(nbnod){ + case 1 : NbPoints++; break; + case 2 : NbLines++; break; + case 3 : NbTriangles++; break; + case 4 : NbTetrahedra++; break; + } } -void Stat_TensorSimplex(int dim, double *coord, int N, double *v){ +void Stat_TensorSimplex(int nbnod, double *coord, int N, double *v){ Msg(ERROR, "Tensor Field Views not Implemented Yet"); } @@ -362,7 +360,7 @@ extern int Force_ViewNumber; void Read_View(FILE *file, char *filename){ char str[NAME_STR_L], name[NAME_STR_L]; - int nb, format, nbtimestep; + int nb, format; double version; while (1) { @@ -394,63 +392,64 @@ void Read_View(FILE *file, char *filename){ BeginView(0); fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d\n", - name, &nbtimestep, + name, &ActualView->NbTimeStep, &ActualView->NbSP, &ActualView->NbVP, &ActualView->NbTP, &ActualView->NbSL, &ActualView->NbVL, &ActualView->NbTL, &ActualView->NbST, &ActualView->NbVT, &ActualView->NbTT, &ActualView->NbSS, &ActualView->NbVS, &ActualView->NbTS); Msg(DEBUG, "View '%s' (%d TimeSteps): %d %d %d %d %d %d %d %d %d %d %d %d", - name, nbtimestep, + name, ActualView->NbTimeStep, ActualView->NbSP, ActualView->NbVP, ActualView->NbTP, ActualView->NbSL, ActualView->NbVL, ActualView->NbTL, ActualView->NbST, ActualView->NbVT, ActualView->NbTT, ActualView->NbSS, ActualView->NbVS, ActualView->NbTS); - ActualView->Time = List_CreateFromFile(nbtimestep, sizeof(double), file, format); + ActualView->Time = List_CreateFromFile(ActualView->NbTimeStep, + sizeof(double), file, format); nb = ActualView->NbSP ? - ActualView->NbSP * nbtimestep + ActualView->NbSP * 3 : 0 ; + ActualView->NbSP * ActualView->NbTimeStep + ActualView->NbSP * 3 : 0 ; ActualView->SP = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbVP ? - ActualView->NbVP * nbtimestep * 3 + ActualView->NbVP * 3 : 0 ; + ActualView->NbVP * ActualView->NbTimeStep * 3 + ActualView->NbVP * 3 : 0 ; ActualView->VP = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbTP ? - ActualView->NbTP * nbtimestep * 9 + ActualView->NbTP * 3 : 0 ; + ActualView->NbTP * ActualView->NbTimeStep * 9 + ActualView->NbTP * 3 : 0 ; ActualView->TP = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbSL ? - ActualView->NbSL * nbtimestep * 2 + ActualView->NbSL * 6 : 0 ; + ActualView->NbSL * ActualView->NbTimeStep * 2 + ActualView->NbSL * 6 : 0 ; ActualView->SL = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbVL ? - ActualView->NbVL * nbtimestep * 2 * 3 + ActualView->NbVL * 6 : 0 ; + ActualView->NbVL * ActualView->NbTimeStep * 2 * 3 + ActualView->NbVL * 6 : 0 ; ActualView->VL = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbTL ? - ActualView->NbTL * nbtimestep * 2 * 9 + ActualView->NbTL * 6 : 0 ; + ActualView->NbTL * ActualView->NbTimeStep * 2 * 9 + ActualView->NbTL * 6 : 0 ; ActualView->TL = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbST ? - ActualView->NbST * nbtimestep * 3 + ActualView->NbST * 9 : 0 ; + ActualView->NbST * ActualView->NbTimeStep * 3 + ActualView->NbST * 9 : 0 ; ActualView->ST = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbVT ? - ActualView->NbVT * nbtimestep * 3 * 3 + ActualView->NbVT * 9 : 0 ; + ActualView->NbVT * ActualView->NbTimeStep * 3 * 3 + ActualView->NbVT * 9 : 0 ; ActualView->VT = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbTT ? - ActualView->NbTT * nbtimestep * 3 * 9 + ActualView->NbTT * 9 : 0 ; + ActualView->NbTT * ActualView->NbTimeStep * 3 * 9 + ActualView->NbTT * 9 : 0 ; ActualView->TT = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbSS ? - ActualView->NbSS * nbtimestep * 4 + ActualView->NbSS * 12 : 0 ; + ActualView->NbSS * ActualView->NbTimeStep * 4 + ActualView->NbSS * 12 : 0 ; ActualView->SS = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbVS ? - ActualView->NbVS * nbtimestep * 4 * 3 + ActualView->NbVS * 12 : 0 ; + ActualView->NbVS * ActualView->NbTimeStep * 4 * 3 + ActualView->NbVS * 12 : 0 ; ActualView->VS = List_CreateFromFile(nb, sizeof(double), file, format); nb = ActualView->NbTS ? - ActualView->NbTS * nbtimestep * 4 * 9 + ActualView->NbTS * 12 : 0 ; + ActualView->NbTS * ActualView->NbTimeStep * 4 * 9 + ActualView->NbTS * 12 : 0 ; ActualView->TS = List_CreateFromFile(nb, sizeof(double), file, format); Msg(DEBUG, "Read View '%s' (%d TimeSteps): %d %d %d %d %d %d %d %d %d %d %d %d", - name, nbtimestep, + name, ActualView->NbTimeStep, List_Nbr(ActualView->SP), List_Nbr(ActualView->VP), List_Nbr(ActualView->TP), List_Nbr(ActualView->SL), List_Nbr(ActualView->VL), List_Nbr(ActualView->TL), List_Nbr(ActualView->ST), List_Nbr(ActualView->VT), List_Nbr(ActualView->TT),