MorphoGraphX  2.0-1-227
Materials.hpp
Go to the documentation of this file.
1 #ifndef _MATERIALS_HPP_
2 #define _MATERIALS_HPP_
3 
9 #include <Config.hpp>
10 #include <string>
11 #include <qgl.h>
12 #include <GL/glu.h>
13 
14 namespace mgx
15 {
28  class Materials : public FileObject
29  {
30  public:
32  struct Material {
33  bool isDefault;
34  GLfloat ambient[4];
35  GLfloat diffuse[4];
36  GLfloat emission[4];
37  GLfloat specular[4];
38  GLfloat shiny;
39  GLfloat transparency;
40  };
41 
42  Materials(std::string filename);
43 
44  void reread();
45 
46  void useMaterial(unsigned int index);
47  const Material& getMaterial(unsigned int index);
48  void blend(unsigned int ind1, unsigned int ind2, float t);
49 
50  private:
51  Material mats[256];
52  };
53 }
54 
55 #endif
mgx::Materials::Material::ambient
GLfloat ambient[4]
Definition: Materials.hpp:34
mgx::Materials::Materials
Materials(std::string filename)
mgx::Materials::Material::isDefault
bool isDefault
Definition: Materials.hpp:33
mgx::Materials::useMaterial
void useMaterial(unsigned int index)
mgx::Materials::Material
The material data structure.
Definition: Materials.hpp:32
mgx::Materials::blend
void blend(unsigned int ind1, unsigned int ind2, float t)
mgx
Distributed matrix library.
Definition: Assert.hpp:26
mgx::Materials::Material::emission
GLfloat emission[4]
Definition: Materials.hpp:36
mgx::Materials::reread
void reread()
mgx::Materials
A utility class for materials.
Definition: Materials.hpp:28
mgx::Materials::Material::shiny
GLfloat shiny
Definition: Materials.hpp:38
mgx::Materials::Material::specular
GLfloat specular[4]
Definition: Materials.hpp:37
mgx::Materials::getMaterial
const Material & getMaterial(unsigned int index)
mgx::Materials::Material::diffuse
GLfloat diffuse[4]
Definition: Materials.hpp:35
mgx::Materials::Material::transparency
GLfloat transparency
Definition: Materials.hpp:39