gKit2 light
Classes | Functions
draw.h File Reference
#include "mesh.h"
#include "orbiter.h"
#include "window.h"
#include "program.h"

Go to the source code of this file.

Classes

class  DrawParam
 
struct  PipelineProgram
 description d'un shader program compile. More...
 
class  PipelineCache
 ensemble de shader programs compiles. singleton. More...
 

Functions

void draw (Mesh &m, const Transform &model, const Transform &view, const Transform &projection)
 dessine l'objet avec les transformations model, vue et projection. More...
 
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 fournies avec tous les sommets de l'objet. More...
 
void draw (Mesh &m, Orbiter &camera)
 dessine l'objet avec les transformations vue et projection, definies par la camera. model est la transformation identite. More...
 
void draw (Mesh &m, const Transform &model, Orbiter &camera)
 dessine l'objet avec une transformation model. les transformations vue et projection sont celles de la camera More...
 
void draw (Mesh &m, Orbiter &camera, const GLuint texture)
 dessine l'objet avec les transformations vue et projection. model est l'identite. applique une texture a la surface de l'objet. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet. More...
 
void draw (Mesh &m, const Transform &model, Orbiter &camera, const GLuint texture)
 dessine l'objet avec une transformation model. les transformations vue et projection sont celles de la camera. applique une texture a la surface de l'objet. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet. More...
 
dessine des triangles d'un objet associés à une matière. cf gestion des matieres, Mesh::groups() et les classes Materials et Material.
void draw (const TriangleGroup &group, Mesh &mesh, Orbiter &camera)
 dessine un groupe de triangles de l'objet associe a une matiere / couleur. More...
 
void draw (const TriangleGroup &group, Mesh &mesh, const Transform &model, Orbiter &camera)
 dessine un groupe de triangles de l'objet associe a une matiere / couleur. More...
 
void draw (const TriangleGroup &group, Mesh &mesh, const Transform &model, const Transform &view, const Transform &projection)
 dessine un groupe de triangles de l'objet associe a une matiere / couleur. More...
 
void draw (const TriangleGroup &group, Mesh &mesh, Orbiter &camera, const GLuint texture)
 dessine un groupe de triangles de l'objet associe a une matiere / couleur et une texture. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet. More...
 
void draw (const TriangleGroup &group, Mesh &mesh, const Transform &model, Orbiter &camera, const GLuint texture)
 dessine un groupe de triangles de l'objet associe a une matiere / couleur et une texture. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet. More...
 
void draw (const TriangleGroup &group, Mesh &mesh, const Transform &model, const Transform &view, const Transform &projection, const GLuint texture)
 dessine un groupe de triangles de l'objet associe a une matiere / couleur et une texture. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet. More...
 
void draw (Mesh &m, DrawParam &param)
 

Class Documentation

◆ PipelineProgram

struct PipelineProgram

description d'un shader program compile.

Definition at line 150 of file draw.h.

Class Members
string filename
string definitions
GLuint program

Function Documentation

◆ draw() [1/12]

void draw ( Mesh m,
const Transform model,
const Transform view,
const Transform projection 
)

dessine l'objet avec les transformations model, vue et projection.

Definition at line 33 of file draw.cpp.

34 {
35  DrawParam param;
36  param.model(model).view(view).projection(projection);
37  param.draw(m);
38 }
Definition: draw.h:67
DrawParam & view(const Transform &m)
modifie la transformation view utilisee pour afficher l'objet.
Definition: draw.h:81
DrawParam & model(const Transform &m)
modifie la transformation model utilisee pour afficher l'objet.
Definition: draw.h:79
void draw(Mesh &mesh)
dessine l'objet avec l'ensemble des parametres definis.
Definition: draw.cpp:157
DrawParam & projection(const Transform &m)
modifie la transformation projection utilisee pour afficher l'objet.
Definition: draw.h:83

◆ draw() [2/12]

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 fournies avec tous les sommets de l'objet.

Definition at line 8 of file draw.cpp.

9 {
10  DrawParam param;
11  param.model(model).view(view).projection(projection);
12  param.texture(texture);
13  param.draw(m);
14 }
DrawParam & texture(const GLuint t)
plaque une texture opaque a la surface de l'objet.
Definition: draw.h:92

◆ draw() [3/12]

void draw ( Mesh m,
Orbiter camera 
)

dessine l'objet avec les transformations vue et projection, definies par la camera. model est la transformation identite.

Definition at line 50 of file draw.cpp.

51 {
52  // affiche l'objet
53  draw(m, Identity(), camera);
54 }
Transform Identity()
construit la transformation identite.
Definition: mat.cpp:187

◆ draw() [4/12]

void draw ( Mesh m,
const Transform model,
Orbiter camera 
)

dessine l'objet avec une transformation model. les transformations vue et projection sont celles de la camera

Definition at line 40 of file draw.cpp.

41 {
42  // recupere les transformations
43  Transform view= camera.view();
44  Transform projection= camera.projection(window_width(), window_height(), 45);
45 
46  // affiche l'objet
47  draw(m, model, view, projection);
48 }
Transform projection(const int width, const int height, const float fov)
fixe la projection reglee pour une image d'aspect width / height, et une demi ouverture de fov degres...
Definition: orbiter.cpp:47
Transform view() const
renvoie la transformation vue.
Definition: orbiter.cpp:40
int window_height()
renvoie la hauteur de la fenetre de l'application.
Definition: window.cpp:29
int window_width()
renvoie la largeur de la fenetre de l'application.
Definition: window.cpp:25
representation d'une transformation, une matrice 4x4, organisee par ligne / row major.
Definition: mat.h:21

◆ draw() [5/12]

void draw ( Mesh m,
Orbiter camera,
const GLuint  texture 
)

dessine l'objet avec les transformations vue et projection. model est l'identite. applique une texture a la surface de l'objet. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet.

Definition at line 26 of file draw.cpp.

27 {
28  draw(m, Identity(), camera, texture);
29 }

◆ draw() [6/12]

void draw ( Mesh m,
const Transform model,
Orbiter camera,
const GLuint  texture 
)

dessine l'objet avec une transformation model. les transformations vue et projection sont celles de la camera. applique une texture a la surface de l'objet. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet.

Definition at line 16 of file draw.cpp.

17 {
18  // recupere les transformations
19  Transform view= camera.view();
20  Transform projection= camera.projection(window_width(), window_height(), 45);
21 
22  // affiche l'objet
23  draw(m, model, view, projection, texture);
24 }

◆ draw() [7/12]

void draw ( const TriangleGroup group,
Mesh mesh,
Orbiter camera 
)

dessine un groupe de triangles de l'objet associe a une matiere / couleur.

Definition at line 75 of file draw.cpp.

76 {
77  draw(group, m, Identity(), camera);
78 }

◆ draw() [8/12]

void draw ( const TriangleGroup group,
Mesh mesh,
const Transform model,
Orbiter camera 
)

dessine un groupe de triangles de l'objet associe a une matiere / couleur.

Definition at line 65 of file draw.cpp.

66 {
67  // recupere les transformations
68  Transform view= camera.view();
69  Transform projection= camera.projection(window_width(), window_height(), 45);
70 
71  // dessine les triangles
72  draw(group, m, model, view, projection);
73 }

◆ draw() [9/12]

void draw ( const TriangleGroup group,
Mesh mesh,
const Transform model,
const Transform view,
const Transform projection 
)

dessine un groupe de triangles de l'objet associe a une matiere / couleur.

Definition at line 58 of file draw.cpp.

59 {
60  DrawParam param;
61  param.model(model).view(view).projection(projection);
62  param.draw(group, m);
63 }

◆ draw() [10/12]

void draw ( const TriangleGroup group,
Mesh mesh,
Orbiter camera,
const GLuint  texture 
)

dessine un groupe de triangles de l'objet associe a une matiere / couleur et une texture. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet.

Definition at line 100 of file draw.cpp.

101 {
102  draw(group, m, Identity(), camera, texture);
103 }

◆ draw() [11/12]

void draw ( const TriangleGroup group,
Mesh mesh,
const Transform model,
Orbiter camera,
const GLuint  texture 
)

dessine un groupe de triangles de l'objet associe a une matiere / couleur et une texture. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet.

Definition at line 90 of file draw.cpp.

91 {
92  // recupere les transformations
93  Transform view= camera.view();
94  Transform projection= camera.projection(window_width(), window_height(), 45);
95 
96  // dessine les triangles
97  draw(group, m, model, view, projection, texture);
98 }

◆ draw() [12/12]

void draw ( const TriangleGroup group,
Mesh mesh,
const Transform model,
const Transform view,
const Transform projection,
const GLuint  texture 
)

dessine un groupe de triangles de l'objet associe a une matiere / couleur et une texture. ne fonctionne que si les coordonnees de textures sont fournies avec tous les sommets de l'objet.

Definition at line 82 of file draw.cpp.

83 {
84  DrawParam param;
85  param.model(model).view(view).projection(projection);
86  param.texture(texture);
87  param.draw(group, m);
88 }