X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fmaterial.h;h=e1bfec4caa0707419941b88476394955ab651244;hb=HEAD;hp=5a71aa34bae2be1470016f1c9ef7a3848447503a;hpb=a6acc6fc98f8571eaaa66f726c1ff4d60abe4f58;p=libs%2Fgl.git diff --git a/source/material.h b/source/material.h deleted file mode 100644 index 5a71aa34..00000000 --- a/source/material.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef MSP_GL_MATERIAL_H_ -#define MSP_GL_MATERIAL_H_ - -#include -#include "bindable.h" -#include "color.h" -#include "programdata.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); - void shininess(float); - }; - -private: - enum ParameterMask - { - AMBIENT = 1, - DIFFUSE = 2, - SPECULAR = 4, - EMISSION = 8, - SHININESS = 16 - }; - - Color ambient; - Color diffuse; - Color specular; - Color emission; - float shininess; - ProgramData shdata; - -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; } - const ProgramData &get_shader_data() const { return shdata; } - void bind() const; -}; - -} // namespace GL -} // namespace Msp - -#endif