diff --git a/Graphics/Draw.h b/Graphics/Draw.h index 4c90ab2c76954fa363573e38a8f6bfcb00358ef7..ab050bc1632a5c0977c16edf377fdc0f64cffb69 100644 --- a/Graphics/Draw.h +++ b/Graphics/Draw.h @@ -43,9 +43,9 @@ void set_t(int i, double val); void set_s(int i, double val); void RaiseFill(int i, double Val, double ValMin, double Raise[3][8]); -void Palette(Post_View * View, double min, double max, double val); -void Palette1(Post_View * View, int nbi, int i); -void Palette2(Post_View * v, double min, double max, double val); +void PaletteContinuous(Post_View * View, double min, double max, double val); +void PaletteContinuousLinear(Post_View * v, double min, double max, double val); +void PaletteDiscrete(Post_View * View, int nbi, int i); void ColorSwitch(int i); int SelectEntity(int type, Vertex **v, Curve **c, Surface **s); diff --git a/Graphics/Graph2D.cpp b/Graphics/Graph2D.cpp index daf036b0e40780c21498dc206bc9fd7cd33d8ab0..1b40a3515cd58a5727071bbfb2f77d4d6ebf13b8 100644 --- a/Graphics/Graph2D.cpp +++ b/Graphics/Graph2D.cpp @@ -1,4 +1,4 @@ -// $Id: Graph2D.cpp,v 1.31 2004-02-07 01:40:19 geuzaine Exp $ +// $Id: Graph2D.cpp,v 1.32 2004-04-20 19:15:14 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -80,7 +80,7 @@ static void addval(Post_View * v, double Abs, double Val, y = ybot + (Val - ValMin) / (ValMax - ValMin) * height; if(Val >= ValMin && Val <= ValMax) { - Palette2(v, ValMin, ValMax, Val); + PaletteContinuousLinear(v, ValMin, ValMax, Val); if(numeric) { glRasterPos2d(x + 3, y + 3); sprintf(label, v->Format, Val); diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp index d1c13a9fe47d91b1438c1c677194444f46e27546..afb732443d42d254ae2a97274217bd44ca39d71e 100644 --- a/Graphics/Post.cpp +++ b/Graphics/Post.cpp @@ -1,4 +1,4 @@ -// $Id: Post.cpp,v 1.54 2004-04-20 18:14:31 geuzaine Exp $ +// $Id: Post.cpp,v 1.55 2004-04-20 19:15:14 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -85,8 +85,8 @@ int GiveIndexFromValue_Log(double ValMin, double ValMax, int NbIso, return NbIso / 2; if(ValMin <= 0.) return 0; - return (int)((log10(Val) - log10(ValMin)) * (NbIso - 1) / (log10(ValMax) - - log10(ValMin))); + return (int)((log10(Val) - log10(ValMin)) * (NbIso - 1) / + (log10(ValMax) - log10(ValMin))); } int GiveIndexFromValue_DoubleLog(double ValMin, double ValMax, int NbIso, @@ -97,36 +97,31 @@ int GiveIndexFromValue_DoubleLog(double ValMin, double ValMax, int NbIso, return NbIso / 2; if(ValMin <= 0.) return 0; - return (int)((log10(Val) - log10(ValMin)) * (NbIso - 1) / (log10(ValMax) - - log10(ValMin))); + return (int)((log10(Val) - log10(ValMin)) * (NbIso - 1) / + (log10(ValMax) - log10(ValMin))); } // Color Palette -void Palette(Post_View * v, double min, double max, double val) +void PaletteContinuous(Post_View * v, double min, double max, double val) { /* val in [min,max] */ int index = v->GIFV(min, max, v->CT.size, val); glColor4ubv((GLubyte *) & v->CT.table[index]); } -void Palette1(Post_View * v, int nbi, int i) -{ /* i in [0,nbi-1] */ - int index; - - index = (nbi == 1) ? - v->CT.size / 2 : (int)(i / (double)(nbi - 1) * (v->CT.size - 1) + 0.5); - +void PaletteContinuousLinear(Post_View * v, double min, double max, double val) +{ /* val in [min,max] */ + int index = GiveIndexFromValue_Lin(min, max, v->CT.size, val); glColor4ubv((GLubyte *) & v->CT.table[index]); } -void Palette2(Post_View * v, double min, double max, double val) -{ /* val in [min,max] */ +void PaletteDiscrete(Post_View * v, int nbi, int i) +{ /* i in [0,nbi-1] */ int index; - index = (min == max) ? - v->CT.size / 2 : - (int)((val - min) / (max - min) * (v->CT.size - 1) + 0.5); + index = (nbi == 1) ? + v->CT.size / 2 : (int)(i / (double)(nbi - 1) * (v->CT.size - 1) + 0.5); glColor4ubv((GLubyte *) & v->CT.table[index]); } diff --git a/Graphics/PostElement.cpp b/Graphics/PostElement.cpp index f4042f924d6fad91cf86961043e22dbcc86b5443..67cb74394cf77b6a29790c2a86c2eaf7ff1daf55 100644 --- a/Graphics/PostElement.cpp +++ b/Graphics/PostElement.cpp @@ -1,4 +1,4 @@ -// $Id: PostElement.cpp,v 1.25 2004-04-20 18:14:31 geuzaine Exp $ +// $Id: PostElement.cpp,v 1.26 2004-04-20 19:15:14 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -255,7 +255,7 @@ void Draw_ScalarPoint(Post_View * View, int preproNormals, Draw_ElementBoundary(POINT, View, X, Y, Z, Raise); if(d >= ValMin && d <= ValMax) { - Palette(View, ValMin, ValMax, d); + PaletteContinuous(View, ValMin, ValMax, d); if(View->IntervalsType == DRAW_POST_NUMERIC) { glRasterPos3d(X[0] + Raise[0][0], Y[0] + Raise[1][0], Z[0] + Raise[2][0]); @@ -302,7 +302,7 @@ void Draw_ScalarLine(Post_View * View, int preproNormals, d = (Val[0] + Val[1]) / 2.; if(d >= ValMin && d <= ValMax) { - Palette(View, ValMin, ValMax, d); + PaletteContinuous(View, ValMin, ValMax, d); sprintf(Num, View->Format, d); glRasterPos3d((X[0] + Raise[0][0] + X[1] + Raise[0][1]) / 2., (Y[0] + Raise[1][0] + Y[1] + Raise[1][1]) / 2., @@ -319,15 +319,15 @@ void Draw_ScalarLine(Post_View * View, int preproNormals, Val[1] >= ValMin && Val[1] <= ValMax) { if(View->LineType) { // not perfect... - Palette(View, ValMin, ValMax, Val[0]); + PaletteContinuous(View, ValMin, ValMax, Val[0]); Draw_Line(View->LineType, View->LineWidth, X, Y, Z, Raise, View->Light); } else { glBegin(GL_LINES); - Palette(View, ValMin, ValMax, Val[0]); + PaletteContinuous(View, ValMin, ValMax, Val[0]); glVertex3d(X[0] + Raise[0][0], Y[0] + Raise[1][0], Z[0] + Raise[2][0]); - Palette(View, ValMin, ValMax, Val[1]); + PaletteContinuous(View, ValMin, ValMax, Val[1]); glVertex3d(X[1] + Raise[0][1], Y[1] + Raise[1][1], Z[1] + Raise[2][1]); glEnd(); @@ -340,7 +340,7 @@ void Draw_ScalarLine(Post_View * View, int preproNormals, } else { for(k = 0; k < View->NbIso; k++) { - Palette1(View, View->NbIso, k); + PaletteDiscrete(View, View->NbIso, k); if(View->IntervalsType == DRAW_POST_DISCRETE) { CutLine1D(X, Y, Z, &Val[0], View->GVFI(ValMin, ValMax, View->NbIso + 1, k), @@ -454,7 +454,7 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, d = (Val[0] + Val[1] + Val[2]) / 3.; if(d >= ValMin && d <= ValMax) { - Palette(View, ValMin, ValMax, d); + PaletteContinuous(View, ValMin, ValMax, d); sprintf(Num, View->Format, d); glRasterPos3d((X[0] + Raise[0][0] + X[1] + Raise[0][1] + X[2] + Raise[0][2]) / 3., @@ -476,15 +476,15 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, Val[1] >= ValMin && Val[1] <= ValMax && Val[2] >= ValMin && Val[2] <= ValMax) { glBegin(GL_TRIANGLES); - Palette(View, ValMin, ValMax, Val[0]); + PaletteContinuous(View, ValMin, ValMax, Val[0]); glNormal3dv(&norms[0]); glVertex3d(X[0] + Raise[0][0], Y[0] + Raise[1][0], Z[0] + Raise[2][0]); - Palette(View, ValMin, ValMax, Val[1]); + PaletteContinuous(View, ValMin, ValMax, Val[1]); glNormal3dv(&norms[3]); glVertex3d(X[1] + Raise[0][1], Y[1] + Raise[1][1], Z[1] + Raise[2][1]); - Palette(View, ValMin, ValMax, Val[2]); + PaletteContinuous(View, ValMin, ValMax, Val[2]); glNormal3dv(&norms[6]); glVertex3d(X[2] + Raise[0][2], Y[2] + Raise[1][2], Z[2] + Raise[2][2]); @@ -495,7 +495,7 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, if(nb >= 3) { glBegin(GL_POLYGON); for(i = 0; i < nb; i++) { - Palette(View, ValMin, ValMax, value[i]); + PaletteContinuous(View, ValMin, ValMax, value[i]); RaiseFill(i, value[i], ValMin, Raise); glVertex3d(Xp[i] + Raise[0][i], Yp[i] + Raise[1][i], Zp[i] + Raise[2][i]); @@ -506,7 +506,7 @@ void Draw_ScalarTriangle(Post_View * View, int preproNormals, } else { for(k = 0; k < View->NbIso; k++) { - Palette1(View, View->NbIso, k); + PaletteDiscrete(View, View->NbIso, k); if(View->IntervalsType == DRAW_POST_DISCRETE) { CutTriangle2D(X, Y, Z, Val, View->GVFI(ValMin, ValMax, View->NbIso + 1, k), @@ -580,7 +580,7 @@ void Draw_ScalarTetrahedron(Post_View * View, int preproNormals, d = 0.25 * (Val[0] + Val[1] + Val[2] + Val[3]); if(d >= ValMin && d <= ValMax) { - Palette(View, ValMin, ValMax, d); + PaletteContinuous(View, ValMin, ValMax, d); sprintf(Num, View->Format, d); glRasterPos3d(0.25 * (X[0] + Raise[0][0] + X[1] + Raise[0][1] + X[2] + Raise[0][2] + X[3] + Raise[0][3]), @@ -595,7 +595,7 @@ void Draw_ScalarTetrahedron(Post_View * View, int preproNormals, else { for(k = 0; k < View->NbIso; k++) { if(!preproNormals) - Palette1(View, View->NbIso, k); + PaletteDiscrete(View, View->NbIso, k); IsoSimplex(View, preproNormals, X, Y, Z, Val, View->GVFI(ValMin, ValMax, View->NbIso, k), Raise); } @@ -832,7 +832,7 @@ void Draw_VectorElement(int type, Post_View * View, dz2 = V[3 * (ts - j - 1) + 2]; dd = sqrt(dx * dx + dy * dy + dz * dz); // not perfect... - Palette(View, ValMin, ValMax, dd); + PaletteContinuous(View, ValMin, ValMax, dd); XX[0] = X[0] + fact * dx; XX[1] = X[0] + fact * dx2; YY[0] = Y[0] + fact * dy; @@ -849,7 +849,7 @@ void Draw_VectorElement(int type, Post_View * View, dy = V[3 * (ts - j) + 1]; dz = V[3 * (ts - j) + 2]; dd = sqrt(dx * dx + dy * dy + dz * dz); - Palette(View, ValMin, ValMax, dd); + PaletteContinuous(View, ValMin, ValMax, dd); glVertex3d(X[0] + fact * dx + Raise[0][0], Y[0] + fact * dy + Raise[1][0], Z[0] + fact * dz + Raise[2][0]); @@ -908,10 +908,10 @@ void Draw_VectorElement(int type, Post_View * View, // allow for some roundoff error due to the computation at the barycenter if(dd != 0.0 && dd >= ValMin * (1. - 1.e-15) && dd <= ValMax * (1. + 1.e-15)) { if(View->IntervalsType == DRAW_POST_CONTINUOUS) - Palette(View, ValMin, ValMax, dd); + PaletteContinuous(View, ValMin, ValMax, dd); else - Palette1(View, View->NbIso, - View->GIFV(ValMin, ValMax, View->NbIso, dd)); + PaletteDiscrete(View, View->NbIso, + View->GIFV(ValMin, ValMax, View->NbIso, dd)); if(View->IntervalsType == DRAW_POST_NUMERIC) { glRasterPos3d(xc, yc, zc); sprintf(Num, View->Format, dd); @@ -940,10 +940,10 @@ void Draw_VectorElement(int type, Post_View * View, for(k = 0; k < nbnod; k++) { if(d[k] != 0.0 && d[k] >= ValMin && d[k] <= ValMax) { if(View->IntervalsType == DRAW_POST_CONTINUOUS) - Palette(View, ValMin, ValMax, d[k]); + PaletteContinuous(View, ValMin, ValMax, d[k]); else - Palette1(View, View->NbIso, - View->GIFV(ValMin, ValMax, View->NbIso, d[k])); + PaletteDiscrete(View, View->NbIso, + View->GIFV(ValMin, ValMax, View->NbIso, d[k])); fact = CTX.pixel_equiv_x / CTX.s[0] * View->ArrowSize / ValMax; if(View->ScaleType == DRAW_POST_LOGARITHMIC && ValMin > 0) { Val[k][0] /= d[k]; diff --git a/Graphics/Scale.cpp b/Graphics/Scale.cpp index a5fb3fc109347d1599f1e060c1352cd1351293e5..b3e35a96724f33063d444aee298d590d43eaaf0e 100644 --- a/Graphics/Scale.cpp +++ b/Graphics/Scale.cpp @@ -1,4 +1,4 @@ -// $Id: Scale.cpp,v 1.40 2004-04-20 18:14:31 geuzaine Exp $ +// $Id: Scale.cpp,v 1.41 2004-04-20 19:15:14 geuzaine Exp $ // // Copyright (C) 1997-2004 C. Geuzaine, J.-F. Remacle // @@ -108,7 +108,7 @@ void draw_scale(Post_View * v, for(i = 0; i < v->NbIso; i++) { if(v->IntervalsType == DRAW_POST_DISCRETE) { - Palette1(v, v->NbIso, i); + PaletteDiscrete(v, v->NbIso, i); glBegin(GL_QUADS); glVertex2d(xmin, ymin + i * cs_bh); glVertex2d(xmin + width, ymin + i * cs_bh); @@ -118,19 +118,20 @@ void draw_scale(Post_View * v, } else if(v->IntervalsType == DRAW_POST_CONTINUOUS) { glBegin(GL_QUADS); - Palette2(v, ValMin, ValMax, - ValMin + i * (ValMax - ValMin) / (v->NbIso ? v->NbIso : 1)); + PaletteContinuousLinear(v, ValMin, ValMax, + ValMin + i * (ValMax - ValMin) / + (v->NbIso ? v->NbIso : 1)); glVertex2d(xmin, ymin + i * cs_bh); glVertex2d(xmin + width, ymin + i * cs_bh); - Palette2(v, ValMin, ValMax, - ValMin + (i + 1) * (ValMax - - ValMin) / (v->NbIso ? v->NbIso : 1)); + PaletteContinuousLinear(v, ValMin, ValMax, + ValMin + (i + 1) * (ValMax - ValMin) / + (v->NbIso ? v->NbIso : 1)); glVertex2d(xmin + width, ymin + (i + 1) * cs_bh); glVertex2d(xmin, ymin + (i + 1) * cs_bh); glEnd(); } else { - Palette1(v, v->NbIso, i); + PaletteDiscrete(v, v->NbIso, i); glBegin(GL_LINES); glVertex2d(xmin, ymin + i * cs_bh + 0.5 * cs_bh); glVertex2d(xmin + width, ymin + i * cs_bh + 0.5 * cs_bh);