src/Light.h

Go to the documentation of this file.
00001 #ifndef LIGHT_H
00002 #define LIGHT_H
00003 
00004 
00005 #include "Vec3f.h"
00006 #include "RGBAColor.h"
00007 
00008 
00009 class Scene;
00010 
00011 
00017 class Light
00018 {
00019 public:
00022     Light()
00023         : mScene(NULL)
00024     {
00025     }
00026 
00029     virtual ~Light()
00030     {
00031     }
00032 
00040     virtual RGBAColor illuminate(Vec3f & dir, const Vec3f & org, unsigned int index = 0) const = 0;
00041 
00045     virtual unsigned int numberOfRays() const
00046     {
00047         return 1;
00048     }
00049 
00052     virtual void setNumberOfRays(unsigned int) = 0;
00053 
00056     void setScene(Scene * newScene)
00057     {
00058         assert(newScene);
00059         mScene = newScene;
00060     }
00061 
00065     Scene * scene()
00066     {
00067         assert(mScene);
00068         return mScene;
00069     }
00070 
00071 protected:
00073     Scene * mScene;
00074 };
00075 
00076 
00077 #endif
00078 

Generated on Fri Feb 1 00:01:42 2008 for Grayfall by  doxygen 1.5.1