Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

OcclusionMap Class Reference

Classe calculant et stockant les donnees d'une carte d'occlusion. More...

#include <OcclusionMap.h>

List of all members.

Public Member Functions

 OcclusionMap ()
 Constructeur de la classe OcclusionMap.
void computeOM (unsigned int xo, unsigned int yo)
 Calcule la carte d'occlusion pour le patch a la position xo,yo.
bool isVisible (unsigned int pos, GLfloat viewH)
 Teste la visibilite d'un patch selon la hauteur donnee.
void savePGM (char *filename)
 Sauvegarde cette carte d'occlusion dans un fichier pgm.
bool loadPGM (char *filename)
 charge cette carte d'occlusion a partir d'un fichier pgm
void newOcc (unsigned int w, unsigned int h)
 initialise les dimensions du tableau contenant la carte d'occlusion.
void setOMI (OMinit *_OMI)
 Associe la variable d'initialisation avec cette carte d'occlusion.
unsigned char * getOcclusion ()
 Accesseur au tableau contenant la carte d'occlusion.

Private Attributes

OMinitOMI
 Variable contenant les informations generique a toutes les cartes d'occlusion.
unsigned char * occlusion
 Tableau contenant la carte d'occlusion.


Detailed Description

Classe calculant et stockant les donnees d'une carte d'occlusion.

Cette classe calcul la carte d'occlusion d'un patch a partir des boites englobantes du terrain. La carte permettra de connaitre la hauteur a partir de laquelle un patch est visible si on le regarde d'un point de vu situe au dessus du patch pour lequel la carte d'occlusion est calcule.


Constructor & Destructor Documentation

OcclusionMap::OcclusionMap  ) 
 

Constructeur de la classe OcclusionMap.

cree une carte d'occlusion 'vierge', c'est a dire que les parametres ne sont pas initialises.


Member Function Documentation

void OcclusionMap::computeOM unsigned int  xo,
unsigned int  yo
 

Calcule la carte d'occlusion pour le patch a la position xo,yo.

Parameters:
xo Coordonnee x du patch dont on calcul la carte d'occlusion
yo Coordonnee y du patch dont on calcul la carte d'occlusion
Calcul la carte d'occlusion par lance de rayon vert tout les autres patchs afin de determiner a partir de quel hauteur ils sont visibles. Cette methode initialise le tableau contenant la carte d'occlusion et calcul sont contenu.

unsigned char* OcclusionMap::getOcclusion  )  [inline]
 

Accesseur au tableau contenant la carte d'occlusion.

Returns:
Le tableau contenant la carte d'occlusion.

bool OcclusionMap::isVisible unsigned int  pos,
GLfloat  viewH
[inline]
 

Teste la visibilite d'un patch selon la hauteur donnee.

Parameters:
pos position du patch dans la carte d'occlusion.
viewH hauteur de la camera.
Returns:
Renvoie vrai si le patch est visible, faux sinon
Test si le patch a la position pos est visible a partir de la hauteur viewH dans cette carte d'occlusion.

bool OcclusionMap::loadPGM char *  filename  ) 
 

charge cette carte d'occlusion a partir d'un fichier pgm

Parameters:
filename Nom du fichier pgm a charger.
charge cette carte d'occlusion a partir du fichier filename au format pgm Essentielement utilise lors du debug.

void OcclusionMap::newOcc unsigned int  w,
unsigned int  h
[inline]
 

initialise les dimensions du tableau contenant la carte d'occlusion.

Parameters:
w largeur du tableau.
h hauteur du tableau.

void OcclusionMap::savePGM char *  filename  ) 
 

Sauvegarde cette carte d'occlusion dans un fichier pgm.

Parameters:
filename Nom du fichier pgm desire.
Sauvegarde cette carte d'occlusion dans le fichier filename au format pgm Essentielement utilise lors du debug.

void OcclusionMap::setOMI OMinit _OMI  )  [inline]
 

Associe la variable d'initialisation avec cette carte d'occlusion.

Parameters:
_OMI Varaible d'initialisation a lier.
Associe cette carte d'occlusion a la variable contenant les informations generiques (initialisation) a toutes les cartes d'occlusion.


Member Data Documentation

unsigned char* OcclusionMap::occlusion [private]
 

Tableau contenant la carte d'occlusion.

Le tableau est de dimension <nombre de="" patch="" x=""> * <nombre de="" patch="" y=""> Chaque case contient un entier non signe code sur 8bit (de 0 a 255) qui represente la hauteur de visibilite d'un patch.

OMinit* OcclusionMap::OMI [private]
 

Variable contenant les informations generique a toutes les cartes d'occlusion.


Generated on Thu Mar 24 12:53:49 2005 for Septant by  doxygen 1.4.1