gKit2 light
Toggle main menu visibility
Loading...
Searching...
No Matches
gkit2_tutos
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
13
class
TP
:
public
App
14
{
15
public
:
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
63
protected
:
64
Mesh
m_objet;
65
GLuint m_texture;
66
Orbiter
m_camera;
67
};
68
69
70
int
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
}
app.h
app_camera.h
App
classe application.
Definition
app.h:20
App::run
int run()
execution de l'application.
Definition
app.cpp:36
App::App
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
Mesh
representation d'un objet / maillage.
Definition
mesh.h:121
Orbiter
representation de la camera, type orbiter, placee sur une sphere autour du centre de l'objet.
Definition
orbiter.h:17
TP
Definition
alpha.cpp:58
TP::render
int render()
a deriver pour afficher les objets. renvoie 1 pour continuer, 0 pour fermer l'application.
Definition
tuto7.cpp:50
TP::quit
int quit()
a deriver pour detruire les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
Definition
tuto7.cpp:41
TP::init
int init()
a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
Definition
tuto7.cpp:20
draw.h
read_mesh
Mesh read_mesh(const char *filename)
charge un fichier wavefront .obj et renvoie un mesh compose de triangles non indexes....
Definition
wavefront.cpp:14
read_texture
GLuint read_texture(const int unit, const char *filename, const GLenum texel_type)
Definition
texture.cpp:133
orbiter.h
Point
representation d'un point 3d.
Definition
vec.h:21
texture.h
wavefront.h
Generated on
for gKit2 light by
1.17.0