17 TP( ) :
App(1024, 640) {}
24 m_objet.
bounds(pmin, pmax);
25 m_camera.
lookat(pmin, pmax);
30 glClearColor(0.2f, 0.2f, 0.2f, 1.f);
34 glEnable(GL_DEPTH_TEST);
43 glDeleteTextures(1, &m_texture);
48 int update(
const float time,
const float delta )
61 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
65 unsigned int mb= SDL_GetRelativeMouseState(&mx, &my);
66 if(mb & SDL_BUTTON(1))
68 else if(mb & SDL_BUTTON(3))
70 else if(mb & SDL_BUTTON(2))
73 draw(m_objet, m_model, m_camera, m_texture);
86 int main(
int argc,
char **argv )
representation de la camera, type orbiter, placee sur une sphere autour du centre de l'objet...
int init()
a deriver pour creer les objets openGL.
void bounds(Point &pmin, Point &pmax)
renvoie min et max les coordonnees des extremites des positions des sommets de l'objet (boite engloba...
representation d'un objet / maillage.
void move(const float z)
rapproche / eloigne la camera du centre.
int update(const float time, const float delta)
a deriver et redefinir pour animer les objets en fonction du temps.
int run()
execution de l'application.
GLuint read_texture(const int unit, const char *filename, const GLenum texel_type)
void draw(Mesh &m, const Transform &model, const Transform &view, const Transform &projection, const GLuint texture)
applique une texture a la surface de l'objet. ne fonctionne que si les coordonnees de textures sont f...
int quit()
a deriver pour detruire les objets openGL.
int window_width()
renvoie la largeur de la fenetre de l'application.
void release()
detruit les objets openGL.
void lookat(const Point ¢er, const float size)
observe le point center a une distance size.
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 window_height()
renvoie la hauteur de la fenetre de l'application.
representation d'un point 3d.
int render()
a deriver pour afficher les objets.
Transform RotationY(const float a)
renvoie la matrice representation une rotation de a degree autour de l'axe Y.
Mesh read_mesh(const char *filename)
charge un fichier wavefront .obj et renvoie un mesh compose de triangles non indexes. utiliser glDrawArrays pour l'afficher. a detruire avec Mesh::release( ).