gKit2 light
Loading...
Searching...
No Matches
tuto4.cpp File Reference

utiliser mesh pour dessiner un triangle du point de vue d'une camera More...

#include <stdio.h>
#include "window.h"
#include "mesh.h"
#include "orbiter.h"
#include "draw.h"

Go to the source code of this file.

Functions

int init ()
int draw ()
int quit ()
int main (int argc, char **argv)

Variables

Mesh triangle
Orbiter camera

Detailed Description

utiliser mesh pour dessiner un triangle du point de vue d'une camera

Definition in file tuto4.cpp.

Function Documentation

◆ init()

int init ( )

Definition at line 19 of file tuto4.cpp.

20{
21 // etape 1 : decrire le triangle, les coordonnees des 3 sommets.
22
23 // creer un mesh pour stocker les coordonnees des sommets du triangle
24 triangle= Mesh(GL_TRIANGLES);
25
26 triangle.color(Color(1, 0, 0));
27 triangle.vertex(-0.5, -0.5, 0);
28
29 triangle.color(Color(0, 1, 0));
30 triangle.vertex(0.5, 0.5, 0);
31
32 triangle.color(Color(0, 0, 1));
33 triangle.vertex(-0.5, 0.5, 0);
34
35 // etape 2 : creer une camera par defaut, elle est placee en 0, 0, 5 et regarde les objets situes en 0, 0, 0
36 camera= Orbiter();
37
38 return 0; // ras, pas d'erreur
39}
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
representation d'une couleur (rgba) transparente ou opaque.
Definition color.h:14

◆ draw()

int draw ( void )

Definition at line 41 of file tuto4.cpp.

42{
43 // etape 2 : dessiner l'objet avec opengl
44
45 // on commence par effacer la fenetre avant de dessiner quelquechose
46 glClear(GL_COLOR_BUFFER_BIT);
47
48 // on dessine le triangle du point de vue de la camera
49 draw(triangle, camera);
50
51 return 1; // on continue, renvoyer 0 pour sortir de l'application
52
53// on peut aussi controler la position de la camera, au clavier, par exemple
54/*
55 float avance= 0;
56 if(key_state('j'))
57 avance= 1;
58 if(key_state('k'))
59 avance= -1;
60
61 camera.move(avance);
62 //~ camera.translation(avance / 100, 0);
63 draw(triangle, camera);
64
65 return 1;
66 */
67 // et ses rotations, cf Orbiter::rotation( ), Orbiter::translation( )...
68 // on peut aussi recuperer les mouvements de la souris et l'utiliser pour controler la camera... cf SDL_GetRelativeMouseState( )
69}

◆ quit()

int quit ( )

Definition at line 71 of file tuto4.cpp.

72{
73 // etape 3 : detruire la description du triangle
74 triangle.release();
75 return 0; // ras, pas d'erreur
76}

◆ main()

int main ( int argc,
char ** argv )

Definition at line 79 of file tuto4.cpp.

80{
81 // etape 1 : creer la fenetre
82 Window window= create_window(1024, 640);
83 if(window == NULL)
84 return 1;
85
86 // etape 2 : creer un contexte opengl pour pouvoir dessiner
87 Context context= create_context(window);
88 if(context == NULL)
89 return 1;
90
91 // etape 3 : creation des objets
92 if(init() < 0)
93 {
94 printf("[error] init failed.\n");
95 return 1;
96 }
97
98 // etape 4 : affichage de l'application, tant que la fenetre n'est pas fermee. ou que draw() ne renvoie pas 0
99 run(window, draw);
100
101 // etape 5 : nettoyage
102 quit();
103 release_context(context);
104 release_window(window);
105 return 0;
106}
Context create_context(Window window)
cree et configure un contexte opengl
Definition window.cpp:358
void release_window(Window window)
destruction de la fenetre.
Definition window.cpp:328
int run(Window window, int(*draw)())
boucle de gestion des evenements de l'application.
Definition window.cpp:158
void printf(Text &text, const int px, const int py, const char *format,...)
affiche un texte a la position x, y. meme utilisation que printf().
Definition text.cpp:140
Window create_window(const int w, const int h, const int major, const int minor)
creation d'une fenetre pour l'application.
Definition window.cpp:262
void release_context(Context context)
detruit le contexte openGL.
Definition window.cpp:439
int init(std::vector< const char * > &options)

Variable Documentation

◆ triangle

Mesh triangle

Definition at line 16 of file tuto4.cpp.

◆ camera

Orbiter camera

Definition at line 17 of file tuto4.cpp.