1 #ifndef MSP_GL_LIGHTING_H_
2 #define MSP_GL_LIGHTING_H_
5 #include <msp/geometry/angle.h>
9 #include "programdata.h"
17 Encapsulates global lighting parameters and a number of individual lights.
19 class Lighting: public Bindable<Lighting>
24 Vector3 sky_direction;
25 Geometry::Angle<float> horizon_angle;
26 std::vector<const Light *> lights;
31 void set_ambient(const Color &);
32 const Color &get_ambient() const { return ambient; }
34 void set_sky_color(const Color &);
35 void set_sky_direction(const Vector3 &);
36 void set_horizon_angle(const Geometry::Angle<float> &);
38 void attach(unsigned, const Light &);
39 void detach(unsigned);
41 void update_shader_data(ProgramData &, const Matrix &) const;