gKit2 light

- Main Page
- Related Pages
- Modules
- Classes
- Files

- File List
- File Members

Classes
mesh.h File Reference
utilitaires pour manipuler des objets 3d
`#include <vector>`
`#include <unordered_map>`
`#include "glcore.h"`
`#include "vec.h"`
`#include "mat.h"`
`#include "color.h"`

Go to the source code of this file.

## Classes
class | Mesh
| representation d'un objet / maillage. More...

## Detailed Description

representation d'un objet.

Mesh propose plusieurs manieres de decrire un maillage. par exemple, un triangle :

Mesh m(GL_TRIANGLES);
// coordonnnees des 3 sommets d'un triangle
Point a= { ... }
Point b= { ... }
Point c= { ... }
m.vertex( a );
m.vertex( b );
m.vertex( c );

il est aussi possible de definir d'autres attributs : la couleur du sommet, sa normale, ses coordonnees de texture, ce sont les fonctions Mesh::color(), Mesh::normal() et Mesh::texcoord(). on peut decrire ces informations de maniere assez compacte :

Mesh m(GL_TRIANGLES);
m.color(Red()).vertex(a);
m.color(Green()).vertex(b);
m.color(Blue()).vertex(c);

et :

Mesh m(GL_TRIANGLES);
m.color(Red()).normal(na).vertex(a);
m.color(Green()).normal(nb).vertex(b);
m.color(Blue()).normal(nc).vertex(c);

vertex() doit etre utilise en dernier. pour permettre de decrire un triangle de couleur uniforme, par exemple, au lieu d'ecrire :

Mesh m(GL_TRIANGLES);
m.color(Red()).vertex(a);
m.color(Red()).vertex(b);
m.color(Red()).vertex(c);

il est plus simple d'ecrire :

Mesh m(GL_TRIANGLES);
m.color(Red());
m.vertex(a);
m.vertex(b);
m.vertex(c);

et cette solution permet aussi de decrire plusieurs triangles partageant leurs sommets, par exemple :

Mesh m(GL_TRIANGLE);
// insere 4 sommets dans le maillage et conserve leurs indices
unsigned int a= m.vertex(Point(...));
unsigned int b= m.vertex(Point(...));
unsigned int c= m.vertex(Point(...));
unsigned int d= m.vertex(Point(...));
// decrit 2 triangles avec les indices des 4 sommets
m.triangle(a, b, c);
m.triangle(a, c, d);

Definition in file mesh.h.