gKit2 light
Loading...
Searching...
No Matches
Pad Class Reference
Inheritance diagram for Pad:

Public Member Functions

int init ()
 a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
int quit ()
 a deriver pour detruire les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.
int update (const float time, const float delta)
 a deriver et redefinir pour animer les objets en fonction du temps.
int render ()
 a deriver pour afficher les objets. renvoie 1 pour continuer, 0 pour fermer l'application.
Public Member Functions inherited from 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.
int run ()
 execution de l'application.

Protected Attributes

Transform m_model
Mesh m_objet
Mesh m_grid
GLuint m_texture
Orbiter m_camera
Gamepads m_gamepads
Protected Attributes inherited from App
Window m_window
Context m_context
bool sync

Additional Inherited Members

Protected Member Functions inherited from App
virtual int prerender ()
virtual int postrender ()
void vsync_off ()

Detailed Description

Definition at line 39 of file tuto_pad.cpp.

Constructor & Destructor Documentation

◆ Pad()

Pad::Pad ( )
inline

Definition at line 43 of file tuto_pad.cpp.

43: App(1024, 640) {}
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

Member Function Documentation

◆ init()

int Pad::init ( )
inlinevirtual

a deriver pour creer les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.

Implements App.

Definition at line 45 of file tuto_pad.cpp.

46 {
47 m_objet= read_mesh("data/cube.obj");
48 m_grid= make_grid();
49
50 Point pmin, pmax;
51 m_grid.bounds(pmin, pmax);
52 m_camera.lookat(pmin, pmax);
53
54 m_texture= read_texture(0, "data/debug2x2red.png");
55
56 // etat openGL par defaut
57 glClearColor(0.2f, 0.2f, 0.2f, 1.f); // couleur par defaut de la fenetre
58
59 glClearDepth(1.f); // profondeur par defaut
60 glDepthFunc(GL_LESS); // ztest, conserver l'intersection la plus proche de la camera
61 glEnable(GL_DEPTH_TEST); // activer le ztest
62
63 //
64 if(!m_gamepads.create())
65 return -1;
66
67 return 0; // ras, pas d'erreur
68 }
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

◆ quit()

int Pad::quit ( )
inlinevirtual

a deriver pour detruire les objets openGL. renvoie -1 pour indiquer une erreur, 0 sinon.

Implements App.

Definition at line 71 of file tuto_pad.cpp.

72 {
73 m_objet.release();
74 m_grid.release();
75 glDeleteTextures(1, &m_texture);
76
77 //
78 m_gamepads.release();
79 return 0;
80 }

◆ update()

int Pad::update ( const float time,
const float delta )
inlinevirtual

a deriver et redefinir pour animer les objets en fonction du temps.

Reimplemented from App.

Definition at line 82 of file tuto_pad.cpp.

83 {
84 m_gamepads.update();
85
86 return 0;
87 }

◆ render()

int Pad::render ( )
inlinevirtual

a deriver pour afficher les objets. renvoie 1 pour continuer, 0 pour fermer l'application.

Implements App.

Definition at line 90 of file tuto_pad.cpp.

91 {
92 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
93
94 // gestion mouvements camera
95 update_camera( m_camera );
96
97 static float position= 0;
98 //~ float speed= m_gamepads.axis(0, SDL_CONTROLLER_AXIS_TRIGGERLEFT);
99 float speed= m_gamepads.pad(0).axis(SDL_CONTROLLER_AXIS_TRIGGERLEFT);
100 position= position + speed;
101
102 static float rotation= 0;
103 //~ float angle= m_gamepads.axis(0, SDL_CONTROLLER_AXIS_RIGHTX);
104 float angle= m_gamepads.pad(0).axis(SDL_CONTROLLER_AXIS_RIGHTX);
105 rotation= rotation + angle;
106
107 m_model= Translation(0, 0, -position) * RotationY(-rotation) * RotationX(-global_time() / 4);
108
109 draw(m_grid, m_camera);
110 draw(m_objet, m_model, m_camera, m_texture);
111
112 // quitter
113 int stop= 1;
114 //~ if(m_gamepads.button(0, SDL_CONTROLLER_BUTTON_BACK))
115 if(m_gamepads.pad(0).button(SDL_CONTROLLER_BUTTON_BACK))
116 stop= 0;
117 return stop;
118 }
float global_time()
renvoie le temps ecoule depuis le lancement de l'application, en millisecondes.
Definition window.cpp:139
Transform RotationX(const float a)
renvoie la matrice representation une rotation de angle degree autour de l'axe X.
Definition mat.cpp:230
Transform RotationY(const float a)
renvoie la matrice representation une rotation de a degree autour de l'axe Y.
Definition mat.cpp:242
Transform Translation(const Vector &v)
renvoie la matrice representant une translation par un vecteur.
Definition mat.cpp:216

Member Data Documentation

◆ m_model

Transform Pad::m_model
protected

Definition at line 121 of file tuto_pad.cpp.

◆ m_objet

Mesh Pad::m_objet
protected

Definition at line 122 of file tuto_pad.cpp.

◆ m_grid

Mesh Pad::m_grid
protected

Definition at line 123 of file tuto_pad.cpp.

◆ m_texture

GLuint Pad::m_texture
protected

Definition at line 125 of file tuto_pad.cpp.

◆ m_camera

Orbiter Pad::m_camera
protected

Definition at line 126 of file tuto_pad.cpp.

◆ m_gamepads

Gamepads Pad::m_gamepads
protected

Definition at line 127 of file tuto_pad.cpp.


The documentation for this class was generated from the following file: