OmniEmitter.h

Go to the documentation of this file.
00001 /**<!-------------------------------------------------------------------->
00002    @class  OmniEmitter
00003    @author Travis Fischer (fisch0920@gmail.com)
00004    @author Matthew Jacobs (jacobs.mh@gmail.com)
00005    @date   Fall 2008
00006    
00007    @brief
00008       Point emitter / light which emits light uniformly in every direction, 
00009    defined at a single point in 3-space (omnidirectional)
00010    <!-------------------------------------------------------------------->**/
00011 
00012 #ifndef OMNI_EMITTER_H_
00013 #define OMNI_EMITTER_H_
00014 
00015 #include <materials/Emitter.h>
00016 #include <stats/samplers/UniformOnSphereSampler.h>
00017 
00018 class OmniEmitter : public Emitter {
00019    public:
00020       ///@name Constructors
00021       //@{-----------------------------------------------------------------
00022       
00023       inline   OmniEmitter(SurfacePoint &pt, Material *parent = NULL)
00024          : Emitter(pt, new UniformOnSphereSampler(3), parent)
00025       { }
00026       
00027       virtual ~OmniEmitter()
00028       { }
00029       
00030       
00031       //@}-----------------------------------------------------------------
00032       ///@name Main usage interface
00033       //@{-----------------------------------------------------------------
00034       
00035       /**
00036        * @returns the spectral radiance emitted along the given vector
00037        */
00038       virtual SpectralSampleSet getLe(const Vector3 &wo);
00039       
00040       
00041       //@}-----------------------------------------------------------------
00042 };
00043 
00044 #endif // OMNI_EMITTER_H_
00045 

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6