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

Camera Class Reference

Permet le suivi de la position de l'observateur et les mouvements. More...

#include <Camera.h>

List of all members.

Public Member Functions

 Camera ()
 Constructeur de Camera.
void move (vector3 *vec)
 Fonction de deplacement selon un vecteur.
void move (int dir, float deltaT, float speed)
 Fonction de deplacement selon une direction et une vitesse donnees.
void rotate (float y, float p)
 Fonction de rotation selon deux des trois axes du repere.
void updateCam ()
 Fonction de mise a jour du repere en fonction des angles de rotation.
void setCam (float m[16])
 Fonction de mise a jour du repere de l'observateur a partir d'une matrice de vue.

Public Attributes

vector3 * up
 Vecteur 'up' du repere de l'observateur.
point3 * pos
 Position de l'observateur.
point3 * lk
 Point que l'observateur regarde.
float pitch
float yaw
vector3 * fwd
 Vecteur 'fwd' du repete de l'observateur.
vector3 * side
 Vecteur 'side' du repere de l'observateur.
vector3 * mve_fwd
 Vecteur de mouvement vers l'avant, independant de la vue de l'observateur.
vector3 * mve_side
 Vecteur de mouvement vers le cote, independant de la vue de l'observateur.
vector3 * mve_up
 Vecteur de mouvement vers le haut, independant de la vue de l'observateur.


Detailed Description

Permet le suivi de la position de l'observateur et les mouvements.

Cette classe permet de conserver toutes les informations relatives au repere de vue de l'observateur. Cela permet ensuite d'effectuer des deplacements selon ces trois axes et des rotations selon deux des trois axes.

Le repere est constitue de deux points (pos et lk) et de trois axes (up, fwd et side). Le point pos indique la position de l'observateur dans le monde. Le point lk est le point qu'il regarde. Le vecteur fwd est le vecteur normalise entre pos et lk. Le vecteur up indique la direction du 'haut' pour l'observateur. Le vecteur side est le produit vectoriel des deux precedents vecteurs et indique le 'cote' de l'observateur.

Ce repere de l'observateur est complete par un autre repere independant de la vue, permettant par exemple de se changer l'elevation selon la verticale exacte du monde.


Constructor & Destructor Documentation

Camera::Camera  )  [inline]
 

Constructeur de Camera.

Initialise les vecteurs de vue et de deplacement pour avoir au depart une vue verticale vers le bas, en regardant au point (0,0,0) du monde.


Member Function Documentation

void Camera::move int  dir,
float  deltaT,
float  speed
 

Fonction de deplacement selon une direction et une vitesse donnees.

Parameters:
dir Code indiquant la direction du mouvement.
deltaT Intervalle de temps depuis le dernier rendu.
speed Vitesse de deplacement.
Cette fonction permet de deplacer la vue selon une direction donne dans un des deux reperes, avec une vitesse donnee. L'intervalle de temps depuis le dernier rendu de la scene est donne pour permettre de garder un deplacement constant, et ce meme lorsque la vitesse de rendu fluctue.

void Camera::move vector3 *  vec  ) 
 

Fonction de deplacement selon un vecteur.

Parameters:
vec Vecteur de deplacement.
Cette fonction permet de deplacer la vue selon un vecteur donne. Ne change pas les angles de la vue.

void Camera::rotate float  y,
float  p
 

Fonction de rotation selon deux des trois axes du repere.

Parameters:
y Rotation du 'yaw' (en degres).
p Rotation du 'pitch' (en degres).
Cette fonction applique une rotation selon les deux axes 'up' et 'side'. La rotation selon l'axe 'fwd' n'est pas permise.

void Camera::setCam float  m[16]  ) 
 

Fonction de mise a jour du repere de l'observateur a partir d'une matrice de vue.

Parameters:
m Matrice de vue OpenGL.
Cette fonction met a jour le repere de l'observateur a partir d'une matrice de vue OpenGL fournie en parametre. Les angles de rotation ne seront pas changes par cette fonction.

void Camera::updateCam  ) 
 

Fonction de mise a jour du repere en fonction des angles de rotation.

Cette fonction doit etre appelee avant tout rendu pour recalculer les vecteurs du repere de l'observateur a partir des angles de rotation.


Member Data Documentation

vector3* Camera::fwd
 

Vecteur 'fwd' du repete de l'observateur.

point3* Camera::lk
 

Point que l'observateur regarde.

vector3* Camera::mve_fwd
 

Vecteur de mouvement vers l'avant, independant de la vue de l'observateur.

vector3* Camera::mve_side
 

Vecteur de mouvement vers le cote, independant de la vue de l'observateur.

vector3* Camera::mve_up
 

Vecteur de mouvement vers le haut, independant de la vue de l'observateur.

float Camera::pitch
 

point3* Camera::pos
 

Position de l'observateur.

vector3* Camera::side
 

Vecteur 'side' du repere de l'observateur.

vector3* Camera::up
 

Vecteur 'up' du repere de l'observateur.

float Camera::yaw
 


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