drand() needs <cstdlib>
[MicroTrace.git] / SpotLight.hxx
1 #ifndef SPOTLIGHT_HXX
2 #define SPOTLIGHT_HXX
3
4 #include "Light.hxx"
5
6 class SpotLight : public Light
7 {
8 public:
9 SpotLight(Scene* scene, const Vec3f& pos, const Vec3f& dir, const Vec3f& intensity, float alpha_min, float alpha_max);
10 virtual ~SpotLight();
11
12 virtual bool Illuminate(Ray& ray, Vec3f& intensity);
13 virtual bool IsArea();
14
15 const Vec3f& position() const;
16 const Vec3f& direction() const;
17
18 private:
19 SpotLight();
20
21 // position and direction
22 Vec3f m_pos, m_dir;
23 // emission (red, green, blue)
24 Vec3f m_intensity;
25 // opening angles
26 float m_alpha_min, m_alpha_max;
27 };
28 #endif
This page took 0.042657 seconds and 5 git commands to generate.