#ifndef LIGHT_H #define LIGHT_H LIGHT_H #include "util/Vector.h" #include "util/Color.h" class Light { public: Light(); void setPosition(const Vector & position) { m_position = position; } void setPosition(refptr vec) { setPosition(*vec); } const Vector & getPosition() const { return m_position; } Vector getJitterPosition(int index) const; void setDiffuseColor(const Color & diffuse) { m_diffuse_color = diffuse; } const Color & getDiffuseColor() const { return m_diffuse_color; } void setSpecularColor(const Color & specular) { m_specular_color = specular; } const Color & getSpecularColor() const { return m_specular_color; } void setJitter(int j) { m_jitter = j >= 1 ? j : 1; } int getJitter() const { return m_jitter; } void setRadius(double r) { m_radius = r; } double getRadius() const { return m_radius; } protected: Vector m_position; Color m_diffuse_color; Color m_specular_color; double m_radius; int m_jitter; }; #include "PointLight.h" #endif