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

OMinit Class Reference

Classe contenant les parametres generiques a toutes les cartes d'occlusion. More...

#include <OMinit.h>

List of all members.

Public Member Functions

 OMinit (AABoundingBox *_bbtab, unsigned int _nbw, unsigned int _nbh)
 Constructeur de la classe.
unsigned int getPos (unsigned int x, unsigned int y)
 Renvoie la position dans le tableau pour les coordonnees donnees.
unsigned int getw ()
 Accesseur au nombre de patchs de large.
unsigned int geth ()
 Accesseur au nombre de patchs de long.
GLfloat getmin ()
 Accesseur a la hauteur minimale des boites englobantes.
GLfloat getmax ()
 Accesseur a la hauteur maximales de visibilite.
GLfloat getbbsize ()
 Accesseur a la taille d'un cote des boites englobantes.
GLfloat getbbsizeinv ()
 Accesseur a l'inverse de la taille d'un cote des boites englobantes.
unsigned char normalise (GLfloat z)
 Normalise la valeur donnee pour qu'elle soit comprise entre 0 et 255.
AABoundingBoxgetbbox ()
 Accesseur au pointeur des boites englobantes.

Private Attributes

unsigned int nbw
 nombre de patch en largeur d'une carte d'occlusion
unsigned int nbh
 nombre de patch en hauteur (longueur) d'une carte d'occlusion
GLfloat min
 Hauteur minimale du terrain par rapport a tout les patchs.
GLfloat max
GLfloat norm
 Variable servant a normaliser les hauteurs entre 0 et 255.
GLfloat bbsize
 Taille d'un cote d'une boite englobante (identique pour toutes).
GLfloat bbsizeinv
 Inverse de la taille pour changer les divisions en multiplications.
AABoundingBoxbbtab
 Pointeur sur le tableau des boites englobantes.


Detailed Description

Classe contenant les parametres generiques a toutes les cartes d'occlusion.

Cette classe contient les parametres necessaire au calculs de toutes les cartes d'occlusion, elle contient notement :


Constructor & Destructor Documentation

OMinit::OMinit AABoundingBox _bbtab,
unsigned int  _nbw,
unsigned int  _nbh
 

Constructeur de la classe.

Parameters:
_bbtab Pointeur vers le tableau des boites englobantes.
_nbw Nombre de patch de large du terrain
_nbh Nombre de patch de long du terrain
Cree un objet OMinit et initialise ses variables.
  • calcul des min et max
  • calcul de la variable de normalisation


Member Function Documentation

AABoundingBox* OMinit::getbbox  )  [inline]
 

Accesseur au pointeur des boites englobantes.

Returns:
Renvoie le pointeur des boites englobantes.

GLfloat OMinit::getbbsize  )  [inline]
 

Accesseur a la taille d'un cote des boites englobantes.

Returns:
Renvoie la taille d'un cote des boites englobantes.

GLfloat OMinit::getbbsizeinv  )  [inline]
 

Accesseur a l'inverse de la taille d'un cote des boites englobantes.

Returns:
Renvoie l'inverse de la taille d'un cote des boites englobantes.

unsigned int OMinit::geth  )  [inline]
 

Accesseur au nombre de patchs de long.

Returns:
Renvoie le nombre de patchs de long

GLfloat OMinit::getmax  )  [inline]
 

Accesseur a la hauteur maximales de visibilite.

Returns:
Renvoie la hauteur maximales de visibilite.

GLfloat OMinit::getmin  )  [inline]
 

Accesseur a la hauteur minimale des boites englobantes.

Returns:
Renvoie la hauteur minimale des boites englobantes.

unsigned int OMinit::getPos unsigned int  x,
unsigned int  y
[inline]
 

Renvoie la position dans le tableau pour les coordonnees donnees.

Parameters:
x numero de colonne dans le tableau
y numero de ligne dans le tableau
Returns:
Renvoie la position pour un tableau a une dimension
Renvoie la position dans le tableau pour les coordonnees x et y selon la largeur du tableau.

unsigned int OMinit::getw  )  [inline]
 

Accesseur au nombre de patchs de large.

Returns:
Renvoie le nombre de patchs de large

unsigned char OMinit::normalise GLfloat  z  )  [inline]
 

Normalise la valeur donnee pour qu'elle soit comprise entre 0 et 255.

Parameters:
z Hauteur que l'on souhaite reporter entre 0 et 255
Returns:
Renvoie la hauteur normaliser entre 0 et 255.
Normalise la hauteur z donnee selon le min, le max et la norm du terrain si z est superieur a max, alors on renvoie 255 si z est inferieur a min, alors on renvoie 0 sinon on normalise normalement.


Member Data Documentation

GLfloat OMinit::bbsize [private]
 

Taille d'un cote d'une boite englobante (identique pour toutes).

GLfloat OMinit::bbsizeinv [private]
 

Inverse de la taille pour changer les divisions en multiplications.

On a souvent besoin de diviser par la taille d'une boite englobante afin de calculer la position du patch par rapport au coordonnees du terrain. une division etant tres couteuse, nous la calculons une seule fois et utilisons des multiplications afin d'optimiser les calculs.

AABoundingBox* OMinit::bbtab [private]
 

Pointeur sur le tableau des boites englobantes.

Necessaire au calcul par lance de rayon des cartes d'occlusion.

GLfloat OMinit::max [private]
 

Hauteur maximale de tous les patchs, multiplie par 3.

On multiplie la valeur de max par 3 afin de definir la hauteur critique a partir de laquelle tous les patchs seront visible.

GLfloat OMinit::min [private]
 

Hauteur minimale du terrain par rapport a tout les patchs.

unsigned int OMinit::nbh [private]
 

nombre de patch en hauteur (longueur) d'une carte d'occlusion

unsigned int OMinit::nbw [private]
 

nombre de patch en largeur d'une carte d'occlusion

Attention, l'espace memoire necessaire au stockage de toutes less cartes d'occlusion est exponentiel par rapport aux dimensions, c'est a dire, au nombre de patchs que contient le terrain. L'espace memoire necessaire se calcul par la formule suivante : taille memoire en octet = (nbw * nbh)^2

par exemple: 36 x 36 patchs : memoire = 1 679 616 octet =~ 1.6 Mo 50 x 50 patchs : memoire = 6 250 000 octet =~ 6 Mo 100 x 100 patchs : memoire = 100 000 000 octet =~ 95 Mo 150 x 150 patchs : memoire = 506 250 000 octet =~ 482 Mo

GLfloat OMinit::norm [private]
 

Variable servant a normaliser les hauteurs entre 0 et 255.

Cette variable est calcules une seule fois ici car elle est tres souvent utilise elle est calcules de la facon suivante : 255 / (max - min) ainsi, il suffit de la multiplier avec une hauteur quelconque pour la normaliser entre 0 et 255.


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