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
1.5.6