16 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);
51 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
55 unsigned int mb= SDL_GetRelativeMouseState(&mx, &my);
56 if(mb & SDL_BUTTON(1))
58 else if(mb & SDL_BUTTON(3))
60 else if(mb & SDL_BUTTON(2))
63 draw(m_objet, m_camera, m_texture);
75 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 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.
App(const int width, const int height, const int major=3, const int minor=3)
constructeur, dimensions de la fenetre et version d'openGL.
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.
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( ).