]> git.tdb.fi Git - libs/gl.git/blobdiff - source/light.h
Add Lights
[libs/gl.git] / source / light.h
diff --git a/source/light.h b/source/light.h
new file mode 100644 (file)
index 0000000..cbf95ad
--- /dev/null
@@ -0,0 +1,45 @@
+/* $Id$
+
+This file is part of libmspgl
+Copyright © 2007  Mikko Rasa, Mikkosoft Productions
+Distributed under the LGPL
+*/
+
+#ifndef MSP_GL_LIGHT_H_
+#define MSP_GL_LIGHT_H_
+
+#include "color.h"
+
+namespace Msp {
+namespace GL {
+
+class Light
+{
+private:
+       Color ambient;
+       Color diffuse;
+       Color specular;
+       float x, y, z, w;
+       float sdx, sdy, sdz;
+       float spot_exp;
+       float spot_cutoff;
+       float attenuation[3];
+
+       static unsigned current;
+
+public:
+       Light();
+       void set_ambient(const Color &c);
+       void set_diffuse(const Color &c);
+       void set_specular(const Color &c);
+       void set_position(float, float, float, float);
+       void apply();
+       void apply_to(unsigned);
+
+       static void activate(unsigned);
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif