+/* $Id$
+
+This file is part of libmspgl
+Copyright © 2007 Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
+#include "material.h"
+
+namespace Msp {
+namespace GL {
+
+Material::Material():
+ ambient(0.2),
+ diffuse(0.8),
+ specular(0),
+ emission(0),
+ shininess(0)
+{ }
+
+void Material::set_ambient(const Color &a)
+{
+ ambient=a;
+}
+
+void Material::set_diffuse(const Color &d)
+{
+ diffuse=d;
+}
+
+void Material::set_specular(const Color &s)
+{
+ specular=s;
+}
+
+void Material::set_emission(const Color &e)
+{
+ emission=e;
+}
+
+void Material::set_shininess(float s)
+{
+ shininess=s;
+}
+
+void Material::apply()
+{
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, &ambient.r);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, &diffuse.r);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, &specular.r);
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, &emission.r);
+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
+}
+
+} // namespace GL
+} // namespace Msp