OrientedEmitter.h

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

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6