00001 00007 #ifndef LIGHT_H 00008 #define LIGHT_H LIGHT_H 00009 00010 #include "Vector3D.h" 00011 #include "ColorRGBA.h" 00012 #include "Ray.h" 00013 00014 class Scene; // forward declaration 00015 00020 class Light 00021 { 00022 protected: 00023 00027 friend class Scene; 00028 00033 Scene* mScene; 00034 00035 public: 00036 00041 Light() 00042 { 00043 mScene = NULL; 00044 }; 00045 00046 virtual ~Light() {} 00047 00055 virtual bool Illuminate(Ray &ray, ColorRGBA &intensity, unsigned int index = 0) = 0; 00056 00061 virtual unsigned int GetNumberOfRays() const { return 1; } 00062 00063 }; 00064 00065 #endif