[Gmsh] Re: Help

Jean-Francois Remacle <remacle@scorec.rpi.edu> remacle at scorec.rpi.edu
Mon Apr 22 15:59:38 CEST 2002


> 
> -- 	Bonjour,
> 
> 	Tout d'abord je vous filicite pour votre logiciel GMSH qui est trhs
> bien congu :-) BRAVO !!!!

Merci beaucoup !

> 
> 	Je suis itudiant au C/U/S/T ` clermont-ferrand dans 
> un ecole d'ingi. J'itudie les mathimatiques appliquies et la 
> modilisation. Dans le cadre d'un projet scolaire (et bien plus) je
> developpe un logiciel de post traitement graphique 
> pour la mithode des EF. Cette application utilise OpenGL et 
> wxwindow, mais je rencontre quelques problimes techniques 
> avec OpenGL :
> 
> 	1-Comment afficher du texte en pricisant les coords x,y,z.
/// move to the right coordinates
glRasterPos2d(x,y);

pour ce qui est du choix des fontes, ca depend pas mal du systeme que tu 
utilises, par exemple, XWindows (unix), on utilise l'extension GLX : 

glXUseXFont(...);

pour windows, on utilise wgl :

wglUseFontBitmaps(...);

pour apple :

aglUseFont (...);


donc ce n'est pas vraiment standardise. Por tracer le texte :

glListBase (...);

Je te conseille d'utiliser une librairie "on the top of opengl", comme
fltk (www.fltk.org) qui prend en compte ce genre de petits soucis.


> 	2-J'ai icrit une procidure pour tracer des vecteurs 2D, mais elle ne
> marche pas en 3D.

??

> 	3-Afficher la colormap

Faut utiliser des primitives genre 
glBegin(GL_QUADS); 
...
glVertex2d (...); 
...
glEnd(); 

c.a.d. tracer tout a la main.

> 	4-Afficher un repere 3D fixe
> 	5-Afficher un graphe en 2D alors que la schne est en 3D.( par ex : la
> colormap, graphe de rho...)


tu redefinis la projection ...

// 3D
 glShadeModel(GL_SMOOTH);
 glDepthFunc(GL_LESS);
 glEnable(GL_DEPTH_TEST);
 glDisable(GL_CULL_FACE); 
 glPushMatrix();
 Draw_Graph3D();
 glPopMatrix();

 glDisable(GL_DEPTH_TEST);
 glDisable(GL_LIGHTING);
 glShadeModel(GL_FLAT);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 glPushMatrix();
 Draw_Graph2D();
 glPopMatrix ()

> 	6-J'ai icrit une procidure qui permet de calculer les  isolignes d'un
> champ de vecteur mais elle fonctionne uniquement en 2D.

???

> 	7-J'ai icrit un procidure permettant de diterminer le bords d'un
> maillage (connexe ou pas) mais elle fonctionne uniquement en 2D. J'ai
> une idie : diterminer les faces qui sont utilisies une seul fois : mais
> c'est trhs lours...

Non, c'est la bonne facon, faut simplement utilser des structures de 
donnee adaptees c.a.d pu tu peux chercher rapidement. Le plus
simple est d'utiliser un std::set<Face, compareFace> avec 

struct Face
{
  int pt[3];
};

struct lessThanFace
{
   bool operator () (const Face &f1, const Face & f2) const
   {
      /// la tu retourne 0 si la face f1 est plus petite que f2 et 1 sinon
      /// utilise l'ordre lexicographique pour ca.
   }
};


Tu peux donc rapidement savoir quelles faces sont utilisees une seule 
fois.

> 
>    Dans GMSH ces problimes ( de 1-6) sont traitis avec succis dans GMSH,
> par consiquent si vous pouviez m'aider en me donnant le code source
> (texte+vecteur+colormap+repere 2D,graphe) je vous en serez trhs
> reconnaissant.

On utilise FLTK, donc tres peu d'opengl. Mais je peux te donner le code 
source.

> 
>    De plus, connaissez vous une bibliothhque C++ permettant d'effectuer
> les calculs cites 1 ` 7 (et plus) sur des maillages et champ de vecteur

VTK fais tout ca ... www.kitware.com

> 
>    Enfin, votre gallerie (de votre cite) contient des exemples de
> maillages et champs de vecteurs qui ne sont pas accisible . Dans le but
> d'illustrer mon logicel par des exemples complexes, pourriez-vous
> m'envoyer les fichiers suivants:
> 	1-Mach number on a F16 : pict1,2,3,4:
> 	2-Structured and unstructured mesh of an extruded geometry: pict1.
> 	3-Breads: pict1, pict2 (D. Colignon). 
> 	4-Some didactic animations about computational electromagnetics at
> ELAP. 

Pas vraiment evident, ce sont des images qui nous ont ete donnees par
des gens externes, on n'a pas toujours acces aux donnees. 

Christophe le sait p-e mieux que moi.

A+

JF

> 	
> 	
> 			Merci beaucoup et bonne continuation.
> 
> 
> BADI
> Hamid
> Risidence Verlaine, 19 Bd Pochet Lagaye n0281 63000 Clermont-Ferrand.
> 

-- 
--
Jean-Francois Remacle, Research Associate
Scientific Computation Research Center     (518) 276-8045
Rensselaer Polytechnic Insitute
http://www.scorec.rpi.edu/~remacle
CII
110 8th Street
Troy, New York 12180-3590