gKit2 light
Loading...
Searching...
No Matches
tuto7.cpp
Go to the documentation of this file.
1
3
4#include "wavefront.h"
5#include "texture.h"
6
7#include "orbiter.h"
8#include "draw.h"
9#include "app.h" // classe Application a deriver
10#include "app_camera.h" // gestion camera
11
12
13class TP : public App
14{
15public:
16 // constructeur : donner les dimensions de l'image, et eventuellement la version d'openGL.
17 TP( ) : App(1024, 640) {}
18
19 // creation des objets de l'application
20 int init( )
21 {
22 m_objet= read_mesh("data/cube.obj");
23
24 Point pmin, pmax;
25 m_objet.bounds(pmin, pmax);
26 m_camera.lookat(pmin, pmax);
27
28 m_texture= read_texture(0, "data/debug2x2red.png");
29
30 // etat openGL par defaut
31 glClearColor(0.2f, 0.2f, 0.2f, 1.f); // couleur par defaut de la fenetre
32
33 glClearDepth(1.f); // profondeur par defaut
34 glDepthFunc(GL_LESS); // ztest, conserver l'intersection la plus proche de la camera
35 glEnable(GL_DEPTH_TEST); // activer le ztest
36
37 return 0; // ras, pas d'erreur
38 }
39
40 // destruction des objets de l'application
41 int quit( )
42 {
43 m_objet.release();
44 glDeleteTextures(1, &m_texture);
45
46 return 0;
47 }
48
49 // dessiner une nouvelle image
50 int render( )
51 {
52 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
53
54 // gestion mouvements camera
55 update_camera( m_camera );
56
57 // affiche l'objet pour le point de vue de la camera et avec une texture
58 draw(m_objet, m_camera, m_texture);
59
60 return 1;
61 }
62
63protected:
64 Mesh m_objet;
65 GLuint m_texture;
66 Orbiter m_camera;
67};
68
69
70int main( int argc, char **argv )
71{
72 // il ne reste plus qu'a creer un objet application et la lancer
73 TP tp;
74 tp.run();
75
76 return 0;
77}
classe application.
Definition app.h:20
int run()
execution de l'application.
Definition app.cpp:36
App(const int width, const int height, const int major=3, const int minor=3)
constructeur, dimensions de la fenetre et version d'openGL.
Definition app.cpp:11
representation d'un objet / maillage.
Definition mesh.h:121
representation de la camera, type orbiter, placee sur une sphere autour du centre de l'objet.
Definition orbiter.h:17
Definition alpha.cpp:58
int render()
a deriver pour afficher les objets. renvoie 1 pour continuer, 0 pour fermer l'application.
Definition tuto7.cpp:50
int quit()
a deriver pour detruire les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
Definition tuto7.cpp:41
int init()
a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
Definition tuto7.cpp:20
Mesh read_mesh(const char *filename)
charge un fichier wavefront .obj et renvoie un mesh compose de triangles non indexes....
Definition wavefront.cpp:14
GLuint read_texture(const int unit, const char *filename, const GLenum texel_type)
Definition texture.cpp:133
representation d'un point 3d.
Definition vec.h:21