Page principale   Liste par ordre alphabétique   Liste des composants   Liste des fichiers   Composants   Déclarations   Pages associées  

Référence du fichier GLvis_.h

fichier d'en tete pour les fonctions relatives a la visualisation openGL Plus de détails...

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>
#include <inrimage/image.h>
#include "interpolation.h"
#include "utils.h"

Aller au code source de ce fichier.

Définitions des macros

#define NB_SUBDIV_INIT   32
#define ECHELLE_VERT_INIT   0.5
#define ECHELLE_VERT_MAX   20.0
#define ECHELLE_NORMALES   0.1
#define DISTANCE_INIT   4.0
#define DISTANCE_MAX   50.0
#define TRUE   1
#define FALSE   0

Définitions des types

typedef vertex_ vertex
typedef image_GL_ image_GL

Fonctions

void chargeImage (char *image, int *num_plans, struct nf_fmt *gfmt, int nb_voulu, float marge, int time_flag)
 ouvre l'image dont le nom est donne en argument, et appelle la fonction adaptee en fonction du type d'image

void chargeSurface2D (struct image *img, char *nom, int *num_plans, Fort_int lfmt_in[9], int time_flag)
 charge une surface 2D dans retour

void chargeFamilleSurfaces (struct image *img, char *nom, int *num_plans, int nb_voulu, float marge, Fort_int lfmt[9], int time_flag)
 charge une famille de surfaces dans retour, et num_plans contient le nombre de plans trouves.

void initGL ()
 fonction permettant d'initialiser OpenGL, pour afficher nos polygones

void affichage ()
 fonction appelee a chaque fois que l'on doit mettre a jour l'image affichee a l'ecran

void clavier (unsigned char touche, int x, int y)
 fonction appelee a chaque appui sur une touche du clavier

void souris (int bouton, int etat, int x, int y)
 fonction appelee a chaque clic de souris

void mouvement (int x, int y)
 fonction appelee a chaque mouvement de souris

void redim (int l, int h)
 fonction appelee lors du redimensionnement de la fenetre

void creeRepere ()
 cree un repere orthonormal pour l'affichage dans la fenetre

void creeLampes ()
 cree l'eclairage, le positionne, afin qu'on voie bien l'effet de relief.

void creeTerrain (int time_flag)
 cree le Maillage de notre surface a visualiser

void creeNormales (vertex *T)
 fonction de creation des normales d'un tableau de vertex

void drawVertex (int i, int j, vertex *T)
 ajoute les polygones correspondant au sommet (i,j) de T a la liste d'affichage


Description détaillée

fichier d'en tete pour les fonctions relatives a la visualisation openGL

Auteur:
Nguyen Matthieu
Date:
31 juillet 2003
ce fichier contient les declarations de toutes les declarations pour les structures et fonctions utilisees pour GLvis

Définition dans le fichier GLvis_.h.


Documentation de la macro

#define DISTANCE_INIT   4.0
 

distance initiale de la camera openGL par rapport a la scene

Définition à la ligne 32 du fichier GLvis_.h.

#define DISTANCE_MAX   50.0
 

distance maximale de la camera openGL par rapport a la scene

Définition à la ligne 34 du fichier GLvis_.h.

Référencé par mouvement().

#define ECHELLE_NORMALES   0.1
 

Echelle d'affichage des normales

Définition à la ligne 30 du fichier GLvis_.h.

Référencé par creeNormales().

#define ECHELLE_VERT_INIT   0.5
 

Echelle verticale d'affichage initiale

Définition à la ligne 26 du fichier GLvis_.h.

#define ECHELLE_VERT_MAX   20.0
 

Echelle verticale d'affichage maximale

Définition à la ligne 28 du fichier GLvis_.h.

Référencé par clavier().

#define FALSE   0
 

macro-constante pour vrai

Définition à la ligne 38 du fichier GLvis_.h.

Référencé par creeTerrain().

#define NB_SUBDIV_INIT   32
 

nombre de subdivisions initiales

Définition à la ligne 24 du fichier GLvis_.h.

#define TRUE   1
 

macro-constante pour vrai

Définition à la ligne 36 du fichier GLvis_.h.

Référencé par creeTerrain().


Documentation du type

struct image_GL_ image_GL
 

on definit le type image_GL comme etant equivalent au type struct image_GL_

Définition à la ligne 60 du fichier GLvis_.h.

struct vertex_ vertex
 

on definit le type vertex comme etant equivalent au type struct vertex_

Définition à la ligne 46 du fichier GLvis_.h.


Documentation de la fonction

void affichage  
 

fonction appelee a chaque fois que l'on doit mettre a jour l'image affichee a l'ecran

utilise les variables d'etat: phi,\c theta,L0pos,\c L1pos, afficheLampes,\c lampes,terrain,\c afficheNormales,normales,\c afficheRepere,repere

Définition à la ligne 444 du fichier GLvis_.c.

Références distance, L0pos, L1pos, lampes, normales, phi, repere, terrain, et theta.

Référencé par initGL().

void chargeFamilleSurfaces struct image *    img,
char *    nom,
int *    num_plans,
int    nb_voulu,
float    marge,
Fort_int    lfmt[9],
int    time_flag
 

charge une famille de surfaces dans retour, et num_plans contient le nombre de plans trouves.

Paramètres:
img  l'image a recuperer
nom  le nom de l'image
num_plans  le nombre de plans calcules
nb_voulu  le nombre d'isosurfaces demandees
marge  la marge d'erreur demandee pour le calcul des isosurfaces.
lfmt  tableau de format de l'image
time_flag  drapeau pour le chronometrage
cette fonction modifie num_plans et met a jour la variable globale terrains_GL
Avertissement:
cette fonction necessite l'existence d'une variable globale terrains_GL de type image_GL *
À Faire:
implementer la gestion d'images codees sur 2 octets

Définition à la ligne 311 du fichier GLvis_.c.

Références chargeFamilleSurfaces(), image_GL_::lfmt, nbSubdiv_max, image_GL_::rapport, et image_GL_::terrain.

Référencé par chargeFamilleSurfaces(), et chargeImage().

void chargeImage char *    image,
int *    num_plans,
struct nf_fmt *    gfmt,
int    nb_voulu,
float    marge,
int    time_flag
 

ouvre l'image dont le nom est donne en argument, et appelle la fonction adaptee en fonction du type d'image

Paramètres:
image  nom de l'image
num_plans  le nombre de plans de l'image de retour
gfmt  pointeur sur format de l'image
nb_voulu  le nombre d'isosurfaces demandees
marge  la marge d'erreur demandee pour le calcul des isosurfaces.
time_flag  drapeau pour le chronometrage

Définition à la ligne 225 du fichier GLvis_.c.

Références chargeFamilleSurfaces(), chargeImage(), et chargeSurface2D().

Référencé par chargeImage(), et visualisation().

void chargeSurface2D struct image *    img,
char *    nom,
int *    num_plans,
Fort_int    lfmt[9],
int    time_flag
 

charge une surface 2D dans retour

Paramètres:
img  l'image a recuperer
nom  le nom de l'image
num_plans  le nombre de plans deja calcules lors de l'appel de la fonction
lfmt  tableau de format de l'image
time_flag  drapeau pour le chronometrage
cette fonction modifie num_plans et met a jour la variable globale terrains_GL
Avertissement:
cette fonction necessite l'existence d'une variable globale terrains_GL de type image_GL *
À Faire:
implementer la gestion d'images codees sur 2 octets

Définition à la ligne 253 du fichier GLvis_.c.

Références chargeSurface2D(), image_GL_::lfmt, nbSubdiv_max, image_GL_::rapport, et image_GL_::terrain.

Référencé par chargeImage(), et chargeSurface2D().

void clavier unsigned char    touche,
int    x,
int    y
 

fonction appelee a chaque appui sur une touche du clavier

Paramètres:
touche  contient la valeur de la touche pressee
x  abscisse de la souris lors de la pression sur une touche
y  ordonnee de la souris lors de la pression sur une touche
necessite la presence de toutes les variables globales

Définition à la ligne 472 du fichier GLvis_.c.

Références afficheLampes, afficheNormales, afficheRepere, areteTransv, clavier(), creeTerrain(), ECHELLE_VERT_MAX, echelleVert, faceArriere, modePlein, nb_terrains, nbSubdiv, nbSubdiv_max, terrain_courant, et time_flag_level.

Référencé par clavier(), et initGL().

creeLampes  
 

cree l'eclairage, le positionne, afin qu'on voie bien l'effet de relief.

utilise les variables globales L0pos,\c L1pos et modifie la variable globale lampes

Définition à la ligne 682 du fichier GLvis_.c.

Références L0pos, L1pos, et lampes.

Référencé par visualisation().

void creeNormales vertex   T
 

fonction de creation des normales d'un tableau de vertex

Paramètres:
T  le tableau de vertex
utilise les variables globales nbSubdiv et normales

Définition à la ligne 835 du fichier GLvis_.c.

Références creeNormales(), ECHELLE_NORMALES, nbSubdiv, normales, vertex_::nx, vertex_::ny, vertex_::nz, vertex_::x, vertex_::y, et vertex_::z.

Référencé par creeNormales(), et creeTerrain().

creeRepere  
 

cree un repere orthonormal pour l'affichage dans la fenetre

en fait, le repere est une pyramide dont on n'affiche que 3 aretes

modifie la variable globale repere

Définition à la ligne 654 du fichier GLvis_.c.

Références repere.

Référencé par visualisation().

creeTerrain int    time_flag
 

cree le Maillage de notre surface a visualiser

Paramètres:
time_flag  drapeau pour le chronometrage
necessite la presence des variables globales areteTransv,\c echelleVert,terrains_GL et nbSubdiv

realise un appel de drawVertex() creeNormales() value()

Définition à la ligne 713 du fichier GLvis_.c.

Références areteTransv, creeNormales(), creeTerrain(), drawVertex(), echelleVert, FALSE, nbSubdiv, vertex_::nx, vertex_::ny, vertex_::nz, terrain, terrain_courant, TRUE, vertex_::x, vertex_::y, et vertex_::z.

Référencé par clavier(), creeTerrain(), et visualisation().

void drawVertex int    i,
int    j,
vertex   T
 

ajoute les polygones correspondant au sommet (i,j) de T a la liste d'affichage

Paramètres:
i  le numero de ligne du sommet
j  le numero de colonne du sommet
T  le tableau de coordonnees

Définition à la ligne 867 du fichier GLvis_.c.

Références drawVertex(), et nbSubdiv.

Référencé par creeTerrain(), et drawVertex().

void initGL  
 

fonction permettant d'initialiser OpenGL, pour afficher nos polygones

cette fonction a besoin des variables modePlein, faceArriere, L0dif, L1dif, Mspec, Mshiny

cette fonction demande la definition des fonctions affichage(),clavier(),souris(),mouvement(),redim()

Définition à la ligne 389 du fichier GLvis_.c.

Références affichage(), clavier(), L0dif, L1dif, mouvement(), Mshiny, Mspec, redim(), et souris().

Référencé par visualisation().

void mouvement int    x,
int    y
 

fonction appelee a chaque mouvement de souris

Paramètres:
x  l'abscisse de la souris
y  l'ordonnee de la souris
utilise b_gauche,\c b_droit

modifie xprec,\c yprec,phi,\c theta,distance

Définition à la ligne 603 du fichier GLvis_.c.

Références distance, DISTANCE_MAX, mouvement(), phi, theta, xprec, et yprec.

Référencé par initGL(), et mouvement().

void redim int    l,
int    h
 

fonction appelee lors du redimensionnement de la fenetre

Paramètres:
l  nouvelle largeur
h  nuovelle hauteur

Définition à la ligne 638 du fichier GLvis_.c.

Références redim().

Référencé par initGL(), et redim().

void souris int    bouton,
int    etat,
int    x,
int    y
 

fonction appelee a chaque clic de souris

Paramètres:
bouton  le bouton appuye (GLUT_LEFT_BUTTON,GLUT_MIDDLE_BUTTON,GLUT_RIGHT_BUTTON)
etat  l'etat du bouton (GLUT_UP,GLUT_DOWN)
x  l'abscisse de la souris
y  l'ordonnee de la souris
modifie les variables globales b_gauche,\c b_droit,xprec,\c yprec

Définition à la ligne 575 du fichier GLvis_.c.

Références b_droit, b_gauche, souris(), xprec, et yprec.

Référencé par initGL(), et souris().


Généré le Mon Nov 3 11:50:10 2003 par doxygen1.2.18