5 AppCamera::AppCamera(
const int width,
const int height,
const int major,
const int minor,
const int samples )
6 :
App(width, height, major, minor, samples), m_camera()
12 AppCamera::~AppCamera( ) {}
14 int AppCamera::prerender( )
18 unsigned int mb= SDL_GetRelativeMouseState(&mx, &my);
20 SDL_GetMouseState(&mousex, &mousey);
23 if(mb & SDL_BUTTON(1))
25 else if(mb & SDL_BUTTON(3))
27 else if(mb & SDL_BUTTON(2))
34 m_camera.
move(8.f * wheel.y);
37 const char *orbiter_filename=
"app_orbiter.txt";
virtual int update(const float time, const float delta)
a deriver et redefinir pour animer les objets en fonction du temps.
AppCamera(const int width, const int height, const int major=3, const int minor=3, const int samples=0)
constructeur, dimensions de la fenetre et version d'openGL.
representation de la camera, type orbiter, placee sur une sphere autour du centre de l'objet.
int read_orbiter(const char *filename)
relit la position de l'orbiter depuis un fichier texte.
void move(const float z)
rapproche / eloigne la camera du centre.
Transform projection(const int width, const int height, const float fov)
fixe la projection reglee pour une image d'aspect width / height, et une demi ouverture de fov degres...
void translation(const float x, const float y)
deplace le centre / le point observe.
void rotation(const float x, const float y)
change le point de vue / la direction d'observation.
int write_orbiter(const char *filename)
enregistre la position de l'orbiter dans un fichier texte.
int window_height()
renvoie la hauteur de la fenetre de l'application.
void clear_key_state(const SDL_Keycode key)
desactive une touche du clavier.
void clear_wheel_event()
desactive l'evenement.
int key_state(const SDL_Keycode key)
renvoie l'etat d'une touche du clavier. cf la doc SDL2 pour les codes.
SDL_MouseWheelEvent wheel_event()
renvoie le dernier evenement. etat de la molette de la souris / glisser sur le pad.
int window_width()
renvoie la largeur de la fenetre de l'application.
float delta_time()
renvoie le temps ecoule depuis la derniere frame, en millisecondes.
float global_time()
renvoie le temps ecoule depuis le lancement de l'application, en millisecondes.
int screenshot(const char *filename)
enregistre le contenu de la fenetre dans un fichier. doit etre de type .png / .bmp