NullEmitter.h

Go to the documentation of this file.
00001 /**<!-------------------------------------------------------------------->
00002    @class  NullEmitter
00003    @author Travis Fischer (fisch0920@gmail.com)
00004    @author Matthew Jacobs (jacobs.mh@gmail.com)
00005    @date   Fall 2008
00006    
00007    @brief
00008       Null emitter which doesn't emit any light, defined at a single point 
00009    in 3-space
00010    <!-------------------------------------------------------------------->**/
00011 
00012 #ifndef NULL_EMITTER_H_
00013 #define NULL_EMITTER_H_
00014 
00015 #include <materials/Emitter.h>
00016 
00017 class NullEmitter : public Emitter {
00018    public:
00019       ///@name Constructors
00020       //@{-----------------------------------------------------------------
00021       
00022       inline explicit NullEmitter(SurfacePoint &pt, Material *parent = NULL)
00023          : Emitter(pt, NULL, parent)
00024       { }
00025       
00026       virtual ~NullEmitter()
00027       { }
00028       
00029       
00030       //@}-----------------------------------------------------------------
00031       ///@name Initialization
00032       //@{-----------------------------------------------------------------
00033       
00034       /**
00035        * @brief
00036        *    Performs any initialization that may be necessary before beginning 
00037        * to use this Emitter
00038        * 
00039        * @note initializes spectral power and radiant exitance to black
00040        */
00041       virtual void init();
00042       
00043       
00044       //@}-----------------------------------------------------------------
00045       ///@name Main usage interface
00046       //@{-----------------------------------------------------------------
00047       
00048       /**
00049        * @returns the spectral radiance emitted along the given vector
00050        * 
00051        * @note returns SpectralSampleSet::black (null emitter)
00052        */
00053       virtual SpectralSampleSet getLe(const Vector3 &wo);
00054       
00055       /**
00056        * @brief
00057        *    Sets up OpenGL material state (light properties) to enable 
00058        * a crude/fast preview of this light in OpenGL
00059        *
00060        * @note overrides default implementation to not modify GL light state
00061        *    at all
00062        */
00063       virtual void preview(Shape *shape);
00064       
00065       
00066       //@}-----------------------------------------------------------------
00067 };
00068 
00069 #endif // NULL_EMITTER_H_
00070 

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6