#include "light.h" #include <GL/gl.h> #include <GL/glu.h> Light::Light() { //TODO: this class should be abstract printf("light not initialized"); } void Light::enable() { enabled = true; glEnable(num); } void Light::disable() { enabled = false; glDisable(num); } void Light::flip() { if (enabled) disable(); else enable(); } DiffuseLight::DiffuseLight(Vec& _pos, Color& _color, GLenum _lightnum) { pos = _pos.clone(); col = _color.clone(); num = _lightnum; GLfloat LightDiffuse[]= { col->r, col->g, col->b, 1.0f }; glLightfv(num, GL_DIFFUSE, LightDiffuse); GLfloat LightPosition[]= { pos->x(), pos->y(), pos->z(), 1.0f }; glLightfv(num, GL_POSITION,LightPosition); enable(); } AmbientLight::AmbientLight(Color& _color, GLenum _lightnum) { col = _color.clone(); num = _lightnum; GLfloat LightAmbient[]= { 0.1f, 0.1f, 0.1f, 1.0f }; glLightfv(num, GL_AMBIENT, LightAmbient); enable(); }