|
gKit2 light
|
representation d'un objet / maillage. More...
#include <mesh.h>
Public Member Functions | |
construction. | |
| Mesh () | |
| constructeur par defaut. | |
| Mesh (const GLenum primitives) | |
| constructeur. | |
| int | create (const GLenum primitives) |
| construit les objets openGL. | |
| Mesh (const GLenum primitives, const std::vector< vec3 > &positions) | |
| constructeur. a partir d'un ensemble de positions. | |
| Mesh (const GLenum primitives, const std::vector< vec3 > &positions, const std::vector< unsigned > &indices) | |
| constructeur. a partir d'un ensemble de positions indexees. | |
| Mesh (const GLenum primitives, const std::vector< vec3 > &positions, const std::vector< vec2 > &texcoords, const std::vector< vec3 > &normals, const std::vector< vec4 > &colors, const std::vector< unsigned > &indices) | |
| constructeur. a partir d'un ensemble de positions + attributs indexes. | |
| void | release () |
| detruit les objets openGL. | |
description des attributs des sommets. | |
| Mesh & | color (const vec4 &c) |
| definit la couleur du prochain sommet. | |
| Mesh & | color (const Color &c) |
| definit la couleur du prochain sommet. | |
| Mesh & | color (const float r, const float g, const float b, const float a=1) |
| definit la couleur du prochain sommet. | |
| Mesh & | normal (const vec3 &n) |
| definit la normale du prochain sommet. | |
| Mesh & | normal (const Vector &n) |
| definit la normale du prochain sommet. | |
| Mesh & | normal (const float x, const float y, const float z) |
| definit la normale du prochain sommet. | |
| Mesh & | texcoord (const vec2 &uv) |
| definit les coordonnees de texture du prochain sommet. | |
| Mesh & | texcoord (const float x, const float y) |
| definit les coordonnees de texture du prochain sommet. | |
| unsigned int | vertex (const vec3 &p) |
| insere un sommet de position p, et ses attributs (s'ils sont definis par color(), texcoord(), normal()), dans l'objet. renvoie l'indice du sommet. | |
| unsigned int | vertex (const Point &p) |
| insere un sommet de position p, et ses attributs (s'ils sont definis par color(), texcoord(), normal()), dans l'objet. renvoie l'indice du sommet. | |
| unsigned int | vertex (const float x, const float y, const float z) |
| insere un sommet de position p, et ses attributs (s'ils sont definis par color(), texcoord(), normal()), dans l'objet. renvoie l'indice du sommet. | |
| void | clear () |
| vide la description. | |
description de triangles indexes. | |
| Mesh & | triangle (const unsigned int a, const unsigned int b, const unsigned int c) |
| Mesh & | triangle_last (const int a, const int b, const int c) |
| Mesh & | restart_strip () |
| demarre un nouveau strip. a utiliser avec un objet composes de GL_TRIANGLE_STRIP, doit aussi fonctionner avec GL_TRIANGLE_FAN, GL_LINE_STRIP, GL_LINE_LOOP, etc. | |
| Mesh & | index (const int a) |
modification des attributs des sommets. | |
| Mesh & | color (const unsigned int id, const vec4 &c) |
| modifie la couleur du sommet d'indice id. | |
| Mesh & | color (const unsigned int id, const Color &c) |
| modifie la couleur du sommet d'indice id. | |
| Mesh & | color (const unsigned int id, const float r, const float g, const float b, const float a=1) |
| modifie la couleur du sommet d'indice id. | |
| Mesh & | normal (const unsigned int id, const vec3 &n) |
| modifie la normale du sommet d'indice id. | |
| Mesh & | normal (const unsigned int id, const Vector &n) |
| modifie la normale du sommet d'indice id. | |
| Mesh & | normal (const unsigned int id, const float x, const float y, const float z) |
| modifie la normale du sommet d'indice id. | |
| Mesh & | texcoord (const unsigned int id, const vec2 &uv) |
| modifie les coordonnees du sommet d'indice id. | |
| Mesh & | texcoord (const unsigned int id, const float x, const float y) |
| modifie les coordonnees du sommet d'indice id. | |
| void | vertex (const unsigned int id, const vec3 &p) |
| modifie la position du sommet d'indice id. | |
| void | vertex (const unsigned int id, const Point &p) |
| modifie la position du sommet d'indice id. | |
| void | vertex (const unsigned int id, const float x, const float y, const float z) |
| modifie la position du sommet d'indice id. | |
description des matieres. | |
| const Materials & | materials () const |
| renvoie la description des matieres. | |
| Materials & | materials () |
| renvoie la description des matieres. | |
| void | materials (const Materials &materials) |
| remplace la description des matieres. | |
| const std::vector< unsigned int > & | material_indices () const |
| renvoie les indices des matieres des triangles. | |
| Mesh & | material (const unsigned int id) |
| definit la matiere du prochain triangle. id est l'indice d'une matiere ajoutee dans materials(), cf la classe Materials. ne fonctionne que pour les primitives GL_TRIANGLES, indexees ou pas. | |
description des triangles d'un maillage. | |
| int | triangle_count () const |
| renvoie le nombre de triangles. | |
| TriangleData | triangle (const unsigned int id) const |
| renvoie un triangle. | |
| int | triangle_material_index (const unsigned int id) const |
| renvoie l'indice de la matiere d'un triangle. | |
| const Material & | triangle_material (const unsigned int id) const |
| renvoie la matiere d'un triangle. | |
| std::vector< TriangleGroup > | groups () |
| renvoie les groupes de triangles de meme matiere. re-organise les triangles. permet d'afficher l'objet matiere par matiere. | |
| std::vector< TriangleGroup > | groups (const std::vector< unsigned int > &triangle_properties) |
| renvoie les groupes de triangles de meme 'propriete'. re-organise les triangles. | |
| void | bounds (Point &pmin, Point &pmax) const |
| renvoie min et max les coordonnees des extremites des positions des sommets de l'objet (boite englobante alignee sur les axes, aabb). | |
| Color | default_color () const |
| renvoie la couleur par defaut du mesh, utilisee si les sommets n'ont pas de couleur associee. | |
| Mesh & | default_color (const Color &color) |
| modifie la couleur par defaut, utilisee si les sommets n'ont pas de couleur associee. | |
manipulation des buffers d'attributs. | |
| int | vertex_count () const |
| renvoie le nombre de sommets. | |
| int | index_count () const |
| renvoie le nombre d'indices de sommets. | |
| const float * | vertex_buffer () const |
| renvoie l'adresse de la position du premier sommet. permet de construire les vertex buffers openGL. par convention, la position est un vec3, 3 GL_FLOAT. | |
| std::size_t | vertex_buffer_size () const |
| renvoie la longueur (en octets) du vertex buffer. | |
| const float * | normal_buffer () const |
| renvoie l'adresse de la normale du premier sommet. par convention, la normale est un vec3, 3 GL_FLOAT. | |
| std::size_t | normal_buffer_size () const |
| renvoie la longueur (en octets) du normal buffer. | |
| const float * | texcoord_buffer () const |
| renvoie l'adresse des coordonnees de textures du premier sommet. par convention, c'est un vec2, 2 GL_FLOAT. | |
| std::size_t | texcoord_buffer_size () const |
| renvoie la taille (en octets) du texcoord buffer. | |
| const float * | color_buffer () const |
| renvoie l'adresse de la couleur du premier sommet. par convention, la couleur est un vec4, 4 GL_FLOAT. | |
| std::size_t | color_buffer_size () const |
| renvoie la taille (en octets) du color buffer. | |
| const void * | index_buffer () const |
| renvoie l'adresse du premier indice du premier triangle. par convention c'est un uint, 1, GL_UNSIGNED_INT. | |
| std::size_t | index_buffer_size () const |
| renvoie la taille (en octets) de l'index buffer. | |
| const std::vector< vec3 > & | positions () const |
| const std::vector< vec2 > & | texcoords () const |
| const std::vector< vec3 > & | normals () const |
| const std::vector< vec4 > & | colors () const |
| const std::vector< unsigned int > & | indices () const |
| bool | has_position () const |
| verifie que les attributs sont decrits de maniere coherente. | |
| bool | has_texcoord () const |
| bool | has_normal () const |
| bool | has_color () const |
| bool | has_material_index () const |
| GLenum | primitives () const |
| renvoie le type de primitives. | |
| GLuint | create_buffers () |
| construit les buffers et le vertex array object necessaires pour dessiner l'objet avec openGL. utilitaire. detruit par release( ). ou release_buffers( ). | |
| GLuint | create_buffers (const bool use_texcoord, const bool use_normal, const bool use_color, const bool use_material_index) |
| construit les buffers et le vertex array object necessaires pour dessiner l'objet avec openGL. utilitaire. detruit par release( ). ou release_buffers( ). | |
| GLuint | create_buffers (const unsigned flags) |
| idem mais utilise une combinaison des flags USE_TEXCOORD, USE_NORMAL... | |
| void | draw (const GLuint program) |
| dessine l'objet avec un shader program. | |
| void | draw (const int first, const int n, const GLuint program) |
| dessine une partie de l'objet avec un shader program. | |
|
inline |
constructeur par defaut.
Definition at line 126 of file mesh.h.
|
inline |
constructeur.
Definition at line 130 of file mesh.h.
| Mesh::Mesh | ( | const GLenum | primitives, |
| const std::vector< vec3 > & | positions ) |
constructeur. a partir d'un ensemble de positions.
Definition at line 22 of file mesh.cpp.
| Mesh::Mesh | ( | const GLenum | primitives, |
| const std::vector< vec3 > & | positions, | ||
| const std::vector< unsigned > & | indices ) |
constructeur. a partir d'un ensemble de positions indexees.
Definition at line 27 of file mesh.cpp.
| Mesh::Mesh | ( | const GLenum | primitives, |
| const std::vector< vec3 > & | positions, | ||
| const std::vector< vec2 > & | texcoords, | ||
| const std::vector< vec3 > & | normals, | ||
| const std::vector< vec4 > & | colors, | ||
| const std::vector< unsigned > & | indices ) |
constructeur. a partir d'un ensemble de positions + attributs indexes.
Definition at line 32 of file mesh.cpp.
| int Mesh::create | ( | const GLenum | primitives | ) |
construit les objets openGL.
| void Mesh::release | ( | ) |
detruit les objets openGL.
Definition at line 50 of file mesh.cpp.
|
inline |
definit la normale du prochain sommet.
Definition at line 76 of file mesh.cpp.
|
inline |
|
inline |
definit les coordonnees de texture du prochain sommet.
Definition at line 170 of file mesh.h.
| unsigned int Mesh::vertex | ( | const vec3 & | p | ) |
insere un sommet de position p, et ses attributs (s'ils sont definis par color(), texcoord(), normal()), dans l'objet. renvoie l'indice du sommet.
Definition at line 97 of file mesh.cpp.
|
inline |
insere un sommet de position p, et ses attributs (s'ils sont definis par color(), texcoord(), normal()), dans l'objet. renvoie l'indice du sommet.
Definition at line 175 of file mesh.h.
|
inline |
| void Mesh::clear | ( | ) |
| Mesh & Mesh::triangle | ( | const unsigned int | a, |
| const unsigned int | b, | ||
| const unsigned int | c ) |
insere un triangle. a, b, c sont les indices des sommets deja inseres dans l'objet. ne fonctionne pas avec les strips et les fans.
Definition at line 178 of file mesh.cpp.
| Mesh & Mesh::triangle_last | ( | const int | a, |
| const int | b, | ||
| const int | c ) |
insere un triangle, a, b, c sont les indices des sommets deja inseres dans l'objet, en comptant en partant du dernier. ne fonctionne pas avec les strips et les fans.
Definition at line 196 of file mesh.cpp.
| Mesh & Mesh::restart_strip | ( | ) |
demarre un nouveau strip. a utiliser avec un objet composes de GL_TRIANGLE_STRIP, doit aussi fonctionner avec GL_TRIANGLE_FAN, GL_LINE_STRIP, GL_LINE_LOOP, etc.
Definition at line 214 of file mesh.cpp.
| Mesh & Mesh::index | ( | const int | a | ) |
insere un indice de sommet.
Definition at line 227 of file mesh.cpp.
|
inline |
|
inline |
|
inline |
| void Mesh::vertex | ( | const unsigned int | id, |
| const vec3 & | p ) |
|
inline |
|
inline |
| const Materials & Mesh::materials | ( | ) | const |
| Materials & Mesh::materials | ( | ) |
| void Mesh::materials | ( | const Materials & | materials | ) |
remplace la description des matieres.
Definition at line 258 of file mesh.cpp.
| const std::vector< unsigned int > & Mesh::material_indices | ( | ) | const |
| Mesh & Mesh::material | ( | const unsigned int | id | ) |
definit la matiere du prochain triangle. id est l'indice d'une matiere ajoutee dans materials(), cf la classe Materials. ne fonctionne que pour les primitives GL_TRIANGLES, indexees ou pas.
Definition at line 263 of file mesh.cpp.
| int Mesh::triangle_count | ( | ) | const |
| TriangleData Mesh::triangle | ( | const unsigned int | id | ) | const |
renvoie un triangle.
Definition at line 432 of file mesh.cpp.
| int Mesh::triangle_material_index | ( | const unsigned int | id | ) | const |
| const Material & Mesh::triangle_material | ( | const unsigned int | id | ) | const |
| std::vector< TriangleGroup > Mesh::groups | ( | ) |
renvoie les groupes de triangles de meme matiere. re-organise les triangles. permet d'afficher l'objet matiere par matiere.
Definition at line 291 of file mesh.cpp.
| std::vector< TriangleGroup > Mesh::groups | ( | const std::vector< unsigned int > & | triangle_properties | ) |
renvoie les groupes de triangles de meme 'propriete'. re-organise les triangles.
Definition at line 296 of file mesh.cpp.
renvoie min et max les coordonnees des extremites des positions des sommets de l'objet (boite englobante alignee sur les axes, aabb).
Definition at line 489 of file mesh.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| GLuint Mesh::create_buffers | ( | ) |
construit les buffers et le vertex array object necessaires pour dessiner l'objet avec openGL. utilitaire. detruit par release( ). ou release_buffers( ).
Definition at line 606 of file mesh.cpp.
| GLuint Mesh::create_buffers | ( | const bool | use_texcoord, |
| const bool | use_normal, | ||
| const bool | use_color, | ||
| const bool | use_material_index ) |
construit les buffers et le vertex array object necessaires pour dessiner l'objet avec openGL. utilitaire. detruit par release( ). ou release_buffers( ).
Definition at line 563 of file mesh.cpp.
| GLuint Mesh::create_buffers | ( | const unsigned | flags | ) |
idem mais utilise une combinaison des flags USE_TEXCOORD, USE_NORMAL...
Definition at line 611 of file mesh.cpp.
| void Mesh::draw | ( | const GLuint | program | ) |
dessine l'objet avec un shader program.
Definition at line 757 of file mesh.cpp.
| void Mesh::draw | ( | const int | first, |
| const int | n, | ||
| const GLuint | program ) |
dessine une partie de l'objet avec un shader program.
Definition at line 765 of file mesh.cpp.