1 #ifndef MSP_GL_BASICMATERIAL_H_
2 #define MSP_GL_BASICMATERIAL_H_
9 class BasicMaterial: public Material
12 class Loader: public DataFile::DerivedObjectLoader<BasicMaterial, Material::PropertyLoader<BasicMaterial> >
15 static ActionMap shared_actions;
18 Loader(BasicMaterial &, Collection &);
21 virtual void init_actions();
25 Property<Color> diffuse;
26 Property<Color> specular;
27 Property<float> shininess;
28 Property<Vector3> normal;
29 Property<Color> emission;
30 Property<float> reflectivity;
32 static const Tag texture_tags[];
38 virtual void fill_program_info(std::string &, std::map<std::string, int> &) const;
41 virtual const Tag *get_texture_tags() const { return texture_tags; }
42 virtual const Texture *get_texture(Tag) const;
44 void set_diffuse(const Color &);
45 void set_diffuse_map(const Texture *);
46 void set_specular(const Color &);
47 void set_specular_map(const Texture *);
48 void set_normal_map(const Texture *);
49 void set_emission(const Color &);
50 void set_emission_map(const Texture *);
51 void set_shininess(float);
52 void set_shininess_map(const Texture *);
53 void set_reflectivity(float);
54 void set_reflectivity_map(const Texture *);