49 lines
1.2 KiB
C++
49 lines
1.2 KiB
C++
|
|
#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<Vector> 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; }
|
|
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
|
|
|