X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fmaterial.h;h=e1bfec4caa0707419941b88476394955ab651244;hp=f244636859ccc6bb7ab417e5ebe7b498f6925ff5;hb=HEAD;hpb=a86623004ba91baef76dac9275e9b79366acce16 diff --git a/source/material.h b/source/material.h deleted file mode 100644 index f2446368..00000000 --- a/source/material.h +++ /dev/null @@ -1,69 +0,0 @@ -#ifndef MSP_GL_MATERIAL_H_ -#define MSP_GL_MATERIAL_H_ - -#include -#include "bindable.h" -#include "color.h" - -namespace Msp { -namespace GL { - -/** -Stores OpenGL material properties. Since OpenGL does not support material -objects, application of material is done with several calls to glMaterial. -*/ -class Material: public BindableWithDefault -{ -public: - class Loader: public DataFile::ObjectLoader - { - public: - Loader(Material &); - - private: - void ambient(float, float, float, float); - void diffuse(float, float, float, float); - void specular(float, float, float, float); - void emission(float, float, float, float); - }; - -private: - enum ParameterMask - { - AMBIENT = 1, - DIFFUSE = 2, - SPECULAR = 4, - EMISSION = 8, - SHININESS = 16 - }; - - Color ambient; - Color diffuse; - Color specular; - Color emission; - float shininess; - -public: - Material(); - -private: - void update_parameter(int) const; - -public: - void set_ambient(const Color &a); - void set_diffuse(const Color &d); - void set_specular(const Color &s); - void set_emission(const Color &e); - void set_shininess(float s); - const Color &get_ambient() const { return ambient; } - const Color &get_diffuse() const { return diffuse; } - const Color &get_specular() const { return specular; } - const Color &get_emission() const { return emission; } - float get_shininess() const { return shininess; } - void bind() const; -}; - -} // namespace GL -} // namespace Msp - -#endif