gKit2 light
Loading...
Searching...
No Matches
mesh_data.h
Go to the documentation of this file.
1
2
3#ifndef _MESH_DATA_H
4#define _MESH_DATA_H
5
6#include <vector>
7#include <string>
8
9#include "glcore.h"
10#include "vec.h"
11#include "color.h"
12
13
15struct MaterialData
16{
19
20 std::string diffuse_filename;
22
24
26 float ns;
27
28 std::string ns_filename;
29 GLuint ns_texture;
30
31 // normal texture... \todo
32
33 MaterialData( ) : diffuse(0.8f, 0.8f, 0.8f), diffuse_texture_color(1, 1, 1), diffuse_filename(), diffuse_texture(0),
34 specular(Black()), emission(),
35 ns(0), ns_filename(), ns_texture(0) {}
36};
37
40{
41 std::vector<std::string> names;
42 std::vector<MaterialData> data;
43};
44
45
47{
48 std::vector<vec3> positions;
49 std::vector<vec2> texcoords;
50 std::vector<vec3> normals;
51
52 std::vector<int> position_indices;
53 std::vector<int> texcoord_indices;
54 std::vector<int> normal_indices;
55
56 std::vector<MaterialData> materials;
57 std::vector<int> material_indices;
58};
59
66std::string pathname( const std::string& filename );
67
69MeshData read_mesh_data( const char *filename );
70
72MaterialDataLib read_material_data( const char *filename );
73
75void bounds( const MeshData& data, Point& pmin, Point& pmax );
76
78void normals( MeshData& data );
79
82
83
84#endif
Color Black()
utilitaire. renvoie une couleur noire.
Definition color.cpp:18
MaterialDataLib read_material_data(const char *filename)
charge un ensemble de matieres texturees.
std::string pathname(const std::string &filename)
Definition files.cpp:68
void normals(MeshData &data)
(re-) calcule les normales des sommets. utiliser avant les reindexations, cf indices() et vertices().
MeshData read_mesh_data(const char *filename)
charge un fichier wavefront .obj et renvoie les donnees.
Definition mesh_data.cpp:16
MeshData vertices(MeshData &data)
construit les sommets. prepare l'affichage openGL, avec glDrawArrays().
void bounds(const MeshData &data, Point &pmin, Point &pmax)
renvoie l'englobant.
ensemble de matieres texturees.
Definition mesh_data.h:40
representation d'une couleur (rgba) transparente ou opaque.
Definition color.h:14
Color specular
couleur du reflet
Definition mesh_data.h:23
Color emission
pour une source de lumiere
Definition mesh_data.h:25
GLuint diffuse_texture
texture diffuse
Definition mesh_data.h:21
std::string diffuse_filename
nom de la texture diffuse
Definition mesh_data.h:20
float ns
exposant pour les reflets blinn-phong
Definition mesh_data.h:26
GLuint ns_texture
texture exposant
Definition mesh_data.h:29
Color diffuse
couleur diffuse
Definition mesh_data.h:17
std::string ns_filename
nom de la texture exposant
Definition mesh_data.h:28
Color diffuse_texture_color
couleur moyenne de la texture
Definition mesh_data.h:18
representation d'un point 3d.
Definition vec.h:21