Skip to content
Snippets Groups Projects
Commit bd4ffba6 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

*** empty log message ***

parent 4f74660b
No related branches found
No related tags found
No related merge requests found
/* $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 "Gmsh.h"
#include "Views.h" #include "Views.h"
...@@ -103,19 +103,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name, ...@@ -103,19 +103,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name,
if(ActualView->NbSP){ if(ActualView->NbSP){
nb = List_Nbr(ActualView->SP) / ActualView->NbSP ; nb = List_Nbr(ActualView->SP) / ActualView->NbSP ;
for(i = 0 ; i < List_Nbr(ActualView->SP) ; i+=nb) 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)); nb-3, (double*)List_Pointer(ActualView->SP,i+3));
} }
if(ActualView->NbVP){ if(ActualView->NbVP){
nb = List_Nbr(ActualView->VP) / ActualView->NbVP ; nb = List_Nbr(ActualView->VP) / ActualView->NbVP ;
for(i = 0 ; i < List_Nbr(ActualView->VP) ; i+=nb) 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)); nb-3, (double*)List_Pointer(ActualView->VP,i+3));
} }
if(ActualView->NbTP){ if(ActualView->NbTP){
nb = List_Nbr(ActualView->TP) / ActualView->NbTP ; nb = List_Nbr(ActualView->TP) / ActualView->NbTP ;
for(i = 0 ; i < List_Nbr(ActualView->TP) ; i+=nb) 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)); nb-3, (double*)List_Pointer(ActualView->TP,i+3));
} }
...@@ -124,19 +124,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name, ...@@ -124,19 +124,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name,
if(ActualView->NbSL){ if(ActualView->NbSL){
nb = List_Nbr(ActualView->SL) / ActualView->NbSL ; nb = List_Nbr(ActualView->SL) / ActualView->NbSL ;
for(i = 0 ; i < List_Nbr(ActualView->SL) ; i+=nb) 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)); nb-6, (double*)List_Pointer(ActualView->SL,i+6));
} }
if(ActualView->NbVL){ if(ActualView->NbVL){
nb = List_Nbr(ActualView->VL) / ActualView->NbVL ; nb = List_Nbr(ActualView->VL) / ActualView->NbVL ;
for(i = 0 ; i < List_Nbr(ActualView->VL) ; i+=nb) 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)); nb-6, (double*)List_Pointer(ActualView->VL,i+6));
} }
if(ActualView->NbTL){ if(ActualView->NbTL){
nb = List_Nbr(ActualView->TL) / ActualView->NbTL ; nb = List_Nbr(ActualView->TL) / ActualView->NbTL ;
for(i = 0 ; i < List_Nbr(ActualView->TL) ; i+=nb) 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)); nb-6, (double*)List_Pointer(ActualView->TL,i+6));
} }
...@@ -145,19 +145,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name, ...@@ -145,19 +145,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name,
if(ActualView->NbST){ if(ActualView->NbST){
nb = List_Nbr(ActualView->ST) / ActualView->NbST ; nb = List_Nbr(ActualView->ST) / ActualView->NbST ;
for(i = 0 ; i < List_Nbr(ActualView->ST) ; i+=nb) 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)); nb-9, (double*)List_Pointer(ActualView->ST,i+9));
} }
if(ActualView->NbVT){ if(ActualView->NbVT){
nb = List_Nbr(ActualView->VT) / ActualView->NbVT ; nb = List_Nbr(ActualView->VT) / ActualView->NbVT ;
for(i = 0 ; i < List_Nbr(ActualView->VT) ; i+=nb) 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)); nb-9, (double*)List_Pointer(ActualView->VT,i+9));
} }
if(ActualView->NbTT){ if(ActualView->NbTT){
nb = List_Nbr(ActualView->TT) / ActualView->NbTT ; nb = List_Nbr(ActualView->TT) / ActualView->NbTT ;
for(i = 0 ; i < List_Nbr(ActualView->TT) ; i+=nb) 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)); nb-9, (double*)List_Pointer(ActualView->TT,i+9));
} }
...@@ -166,19 +166,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name, ...@@ -166,19 +166,19 @@ void EndView(int AddInUI, int Number, char *FileName, char *Name,
if(ActualView->NbSS){ if(ActualView->NbSS){
nb = List_Nbr(ActualView->SS) / ActualView->NbSS ; nb = List_Nbr(ActualView->SS) / ActualView->NbSS ;
for(i = 0 ; i < List_Nbr(ActualView->SS) ; i+=nb) 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)); nb-12, (double*)List_Pointer(ActualView->SS,i+12));
} }
if(ActualView->NbVS){ if(ActualView->NbVS){
nb = List_Nbr(ActualView->VS) / ActualView->NbVS ; nb = List_Nbr(ActualView->VS) / ActualView->NbVS ;
for(i = 0 ; i < List_Nbr(ActualView->VS) ; i+=nb) 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)); nb-12, (double*)List_Pointer(ActualView->VS,i+12));
} }
if(ActualView->NbTS){ if(ActualView->NbTS){
nb = List_Nbr(ActualView->TS) / ActualView->NbTS ; nb = List_Nbr(ActualView->TS) / ActualView->NbTS ;
for(i = 0 ; i < List_Nbr(ActualView->TS) ; i+=nb) 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)); nb-12, (double*)List_Pointer(ActualView->TS,i+12));
} }
...@@ -290,20 +290,13 @@ void CopyViewOptions(Post_View *src, Post_View *dest){ ...@@ -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 */ /* 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){ void Stat_ScalarSimplex(int nbnod, double *coord, int N, double *V){
int i,nbnod; int i;
double *X, *Y, *Z; 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] ; 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->Min = V[0];
ActualView->Max = V[0]; ActualView->Max = V[0];
ActualView->NbTimeStep = N/nbnod; ActualView->NbTimeStep = N/nbnod;
...@@ -315,23 +308,23 @@ void Stat_ScalarSimplex(int dim, double *coord, int N, double *V){ ...@@ -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->Min) ActualView->Min = V[i] ;
if(V[i] > ActualView->Max) ActualView->Max = 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; double l0;
int nbnod, i; int i;
double *X, *Y, *Z; 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] ; 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])); l0 = sqrt(DSQR(V[0])+DSQR(V[1])+DSQR(V[2]));
ActualView->Min = l0; ActualView->Min = l0;
ActualView->Max = l0; ActualView->Max = l0;
...@@ -346,10 +339,15 @@ void Stat_VectorSimplex(int dim, double *coord, int N, double *V){ ...@@ -346,10 +339,15 @@ void Stat_VectorSimplex(int dim, double *coord, int N, double *V){
if(l0 > ActualView->Max) ActualView->Max = l0 ; 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"); Msg(ERROR, "Tensor Field Views not Implemented Yet");
} }
...@@ -362,7 +360,7 @@ extern int Force_ViewNumber; ...@@ -362,7 +360,7 @@ extern int Force_ViewNumber;
void Read_View(FILE *file, char *filename){ void Read_View(FILE *file, char *filename){
char str[NAME_STR_L], name[NAME_STR_L]; char str[NAME_STR_L], name[NAME_STR_L];
int nb, format, nbtimestep; int nb, format;
double version; double version;
while (1) { while (1) {
...@@ -394,63 +392,64 @@ void Read_View(FILE *file, char *filename){ ...@@ -394,63 +392,64 @@ void Read_View(FILE *file, char *filename){
BeginView(0); BeginView(0);
fscanf(file, "%s %d %d %d %d %d %d %d %d %d %d %d %d %d\n", 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->NbSP, &ActualView->NbVP, &ActualView->NbTP,
&ActualView->NbSL, &ActualView->NbVL, &ActualView->NbTL, &ActualView->NbSL, &ActualView->NbVL, &ActualView->NbTL,
&ActualView->NbST, &ActualView->NbVT, &ActualView->NbTT, &ActualView->NbST, &ActualView->NbVT, &ActualView->NbTT,
&ActualView->NbSS, &ActualView->NbVS, &ActualView->NbTS); &ActualView->NbSS, &ActualView->NbVS, &ActualView->NbTS);
Msg(DEBUG, "View '%s' (%d TimeSteps): %d %d %d %d %d %d %d %d %d %d %d %d", 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->NbSP, ActualView->NbVP, ActualView->NbTP,
ActualView->NbSL, ActualView->NbVL, ActualView->NbTL, ActualView->NbSL, ActualView->NbVL, ActualView->NbTL,
ActualView->NbST, ActualView->NbVT, ActualView->NbTT, ActualView->NbST, ActualView->NbVT, ActualView->NbTT,
ActualView->NbSS, ActualView->NbVS, ActualView->NbTS); 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 ? 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); ActualView->SP = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbVP ? 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); ActualView->VP = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbTP ? 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); ActualView->TP = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbSL ? 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); ActualView->SL = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbVL ? 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); ActualView->VL = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbTL ? 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); ActualView->TL = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbST ? 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); ActualView->ST = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbVT ? 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); ActualView->VT = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbTT ? 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); ActualView->TT = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbSS ? 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); ActualView->SS = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbVS ? 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); ActualView->VS = List_CreateFromFile(nb, sizeof(double), file, format);
nb = ActualView->NbTS ? 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); 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", 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->SP), List_Nbr(ActualView->VP), List_Nbr(ActualView->TP),
List_Nbr(ActualView->SL), List_Nbr(ActualView->VL), List_Nbr(ActualView->TL), List_Nbr(ActualView->SL), List_Nbr(ActualView->VL), List_Nbr(ActualView->TL),
List_Nbr(ActualView->ST), List_Nbr(ActualView->VT), List_Nbr(ActualView->TT), List_Nbr(ActualView->ST), List_Nbr(ActualView->VT), List_Nbr(ActualView->TT),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment