#ifndef MSP_GL_LIGHT_H_
#define MSP_GL_LIGHT_H_
-#include <vector>
#include <msp/datafile/objectloader.h>
+#include <msp/geometry/angle.h>
#include "color.h"
#include "placeable.h"
+#include "vector.h"
namespace Msp {
namespace GL {
-class Matrix;
class ProgramData;
/**
float spot_exp;
Geometry::Angle<float> spot_cutoff;
float attenuation[3];
+ unsigned generation;
public:
Light();
void set_attenuation(float, float, float);
const float *get_attenuation() const { return attenuation; }
- /** Updates a ProgramData object with the uniforms for the Light. A view
- matrix and light source index must be passed in. */
- void update_shader_data(ProgramData &, const Matrix &, unsigned) const;
+ unsigned get_generation() const { return generation; }
+
+ /** Updates a ProgramData object with the uniforms for the Light. A light
+ source index must be passed in. Primarily used by Lighting. */
+ void update_shader_data(ProgramData &, unsigned) const;
};
} // namespace GL