representation d'un maillage triangule. More...
#include <Mesh.h>
Public Member Functions | |
| Mesh () | |
| constructeur par defaut. | |
| ~Mesh () | |
| destructeur. | |
| void | pushPosition (const Point &point) |
| ajoute un sommet. | |
| void | attachPositionBuffer (const std::vector< Point > &positions) |
| ajoute un ensemble de sommets. | |
| void | attachPositionBuffer (const int n, const Point *positions) |
| ajoute un ensemble de sommets. | |
| int | positionCount () const |
| renvoie le nombre de sommets du maillage. | |
| const std::vector< Point > & | positions () |
| renvoie les positions des sommets du maillage. | |
| const std::vector< Point > & | positions () const |
| renvoie les positions des sommets du maillage. | |
| void | pushNormal (const Normal &normal) |
| ajoute une normale. | |
| void | attachNormalBuffer (const std::vector< Normal > &normals) |
| ajoute un ensemble de normales | |
| void | attachNormalBuffer (const int n, const Normal *normals) |
| ajoute un ensemble de normales | |
| int | normalCount () const |
| renvoie le nombre de normales du maillage. | |
| const std::vector< Normal > & | normals () |
| renvoie les normales. | |
| const std::vector< Normal > & | normals () const |
| renvoie les normales. | |
| void | pushTexCoord (const Point2 &texcoord) |
| ajoute une coordonnee de texture. | |
| void | attachTexCoordBuffer (const std::vector< Point2 > &texcoords) |
| ajoute un ensemble de coordonnees de texture. | |
| void | attachTexCoordBuffer (const int n, const Point2 *texcoords) |
| ajoute un ensemble de coordonnees de texture. | |
| int | texCoordCount () const |
| renvoie le nombre de coordonnees de textures des sommets du maillage. | |
| const std::vector< Point2 > & | texCoords () |
| renvoie les coordonnees de textures des sommets du maillage. | |
| const std::vector< Point2 > & | texCoords () const |
| renvoie les coordonnees de textures des sommets du maillage. | |
| const std::vector< int > & | smoothGroups () |
| renvoie les groupes de lissage de normales du maillage. | |
| const std::vector< int > & | smoothGroups () const |
| renvoie les groupes de lissage de normales du maillage. | |
| template<class T > | |
| int | attachAttributeBuffer (const Name &semantic, const std::vector< T > &attributes) |
| attache un ensemble d'attributs. | |
| template<class T > | |
| int | attachAttributeBuffer (const Name &semantic, const int n, const T *attributes) |
| attache un ensemble d'attributs. | |
| MeshBuffer * | attachAttributeBuffer (const Name &semantic, const Point2 &attribute_tag) |
| declare un ensemble d'attributs point 2d. | |
| MeshBuffer * | attachAttributeBuffer (const Name &semantic, const Point &attribute_tag) |
| declare un ensemble d'attributs point 3d. | |
| MeshBuffer * | attachAttributeBuffer (const Name &semantic, const Vector &attribute_tag) |
| declare un ensemble d'attributs vecteur 3d. | |
| MeshBuffer * | attachAttributeBuffer (const Name &semantic, const Normal &attribute_tag) |
| declare un ensemble d'attributs normale 3d. | |
| MeshBuffer * | attachAttributeBuffer (const Name &semantic, const Color &attribute_tag) |
| declare un ensemble d'attributs couleur rgba. | |
| MeshBuffer * | findBuffer (const Name &semantic) |
| renvoie un buffer d'apres son nom / semantique. | |
| int | bufferCount () const |
| renvoie le nombre de buffers d'attributs. | |
| const MeshBuffer * | buffer (const int id) const |
| renvoie un buffer. | |
| template<class T > | |
| void | pushAttribute (const Name &semantic, const T &attribute) |
| insere un attribut dans l'ensemble associe. | |
| void | pushTriangle (const int a, const int b, const int c, const int material_id, const int smooth_group=-1) |
| ajoute un triangle | |
| const BBox & | getBBox () const |
| renvoie la bbox du mesh. | |
| int | triangleCount () const |
| renvoie le nombre de triangles du maillage. | |
| int | indiceCount () const |
| renvoie le nombre d'indices du maillage. | |
| const std::vector< int > & | indices () |
| renvoie les indices du maillage. | |
| const std::vector< int > & | indices () const |
| renvoie les indices du maillage. | |
| void | pushSubMesh (const int begin, const int end, const int material_id) |
| ajoute un submesh. | |
| int | subMeshCount () const |
| renvoie le nombre de submesh. | |
| const MeshMaterial & | subMeshMaterial (const int id) const |
| renvoie la matiere d'un submesh. | |
| const MeshMaterial & | subMeshMaterial (const int id) |
| renvoie la matiere d'un submesh. | |
| const std::vector< SubMesh > & | subMeshes () |
| renvoie les parties du maillage. | |
| const std::vector< SubMesh > & | subMeshes () const |
| renvoie les parties du maillage. | |
| void | setMaterials (const std::vector< MeshMaterial * > &materials) |
| remplace l'ensemble de matieres. | |
| int | materialCount () const |
| renvoie le nombre de matieres. | |
|
const std::vector < MeshMaterial * > & | materials () |
| renvoie l'ensemble de matieres. | |
|
const std::vector < MeshMaterial * > & | materials () const |
| renvoie l'ensemble de matieres. | |
| const std::vector< int > & | triangleMaterialsId () const |
| renvoie l'ensemble d'identifiants de matieres des triangles. | |
| MeshMaterial & | triangleMaterial (const int id) |
| renvoie la matiere d'un triangle. | |
| const MeshMaterial & | triangleMaterial (const int id) const |
| renvoie la matiere d'un triangle. | |
| int | getTriangleMaterialId (const int id) const |
| renvoie l'indice de la matiere d'un triangle. | |
| Triangle | getTriangle (const int id) const |
| renvoie un triangle 'geometrique' pour le calcul d'intersection avec un rayon. | |
| PNTriangle | getPNTriangle (const int id) const |
| renvoie un pn triangle. | |
| BBox | getTriangleBBox (const int id) |
| renvoie la boite englobante d'un triangle. | |
| float | getTriangleArea (const int id) |
| renvoie l'aire d'un triangle. | |
| Normal | getTriangleNormal (const int id) const |
| calcule et renvoie la normale geometrique d'un triangle. | |
| Point | getUVPoint (const int id, const float u, const float v) const |
| interpole une position a l'interieur d'un triangle, connaissant les coordonnees barycentriques du point. | |
| Normal | getUVNormal (const int id, const float u, const float v) const |
| interpole une normale a l'interieur d'un triangle, connaissant ses coordonnees barycentriques. | |
| Point2 | getUVTexCoord (const int id, const float u, const float v) const |
| interpole une coordonnee de texture a l'interieur du triangle, connaissant ses coordonnees barycentriques. | |
| int | getTriangleSmoothGroup (const int id) |
| renvoie le smooth group du triangle. | |
| int | buildAdjacency () |
| construit la liste d'adjacence des sommets (liste de triangles). | |
| int | buildNormalSmoothGroups (const float max_angle) |
| construit les smooth groups en fonction de l'angle entre les normales des triangles adjacents. | |
| int | buildTexCoordSmoothGropus (const float max) |
| construit les smooth groups en fonction de la distance entre les coordonnees de textures des triangles adjacents. | |
| int | buildNormals () |
| construit les normales du maillage. | |
Friends | |
| class | MeshIO |
representation d'un maillage triangule.
un mesh est un ensemble de triangles. un triangle est un triplet <abc> d'indices permettant de retrouver la position, la normale et les coordonnees de texture de chaque sommet a, b, c. un triangle (cf. Material) a egalement une matiere associee.
| Triangle gk::Mesh::getTriangle | ( | const int | id | ) | const [inline] |
renvoie un triangle 'geometrique' pour le calcul d'intersection avec un rayon.
utiliser les resultats de l'intersection pour calculer la normale et les texcoords interpolees au point d'intersection. cf. Mesh::getUVPoint(), Mesh::getUVNormal(), Mesh::getUVTexCoord().
| Point gk::Mesh::getUVPoint | ( | const int | id, | |
| const float | u, | |||
| const float | v | |||
| ) | const [inline] |
interpole une position a l'interieur d'un triangle, connaissant les coordonnees barycentriques du point.
convention p(u, v, w= 1 - u - v)= a * u + b * v + c * w.
| Normal gk::Mesh::getUVNormal | ( | const int | id, | |
| const float | u, | |||
| const float | v | |||
| ) | const [inline] |
interpole une normale a l'interieur d'un triangle, connaissant ses coordonnees barycentriques.
convention n(u, v, w= 1 - u - v)= na * u + nb * v + nc * w.
References getTriangleNormal().
| Point2 gk::Mesh::getUVTexCoord | ( | const int | id, | |
| const float | u, | |||
| const float | v | |||
| ) | const [inline] |
interpole une coordonnee de texture a l'interieur du triangle, connaissant ses coordonnees barycentriques.
convention t(u, v, w= 1 - u - v)= ta * u + tb * v + tc * w.
| int gk::Mesh::buildNormals | ( | ) |
construit les normales du maillage.
References gk::Cross(), gk::Normalize(), and triangleCount().
1.6.3