DiffuseBSDF.h

Go to the documentation of this file.
00001 /**<!-------------------------------------------------------------------->
00002    @class  DiffuseBSDF
00003    @author Travis Fischer (fisch0920@gmail.com)
00004    @author Matthew Jacobs (jacobs.mh@gmail.com)
00005    @date   Fall 2008
00006    
00007    @brief
00008       Ideal diffuse BSDF (lambertian) defined at a single point on a 
00009    surface in 3-space
00010    
00011    @param
00012       kd - SpectralSampleSet which scales / attenuates the overall reflectance 
00013    of the material (diffuse albedo)
00014    <!-------------------------------------------------------------------->**/
00015 
00016 #ifndef DIFFUSE_BSDF_H_
00017 #define DIFFUSE_BSDF_H_
00018 
00019 #include <materials/BSDF.h>
00020 
00021 class DiffuseBSDF : public BSDF {
00022    public:
00023       ///@name Constructors
00024       //@{-----------------------------------------------------------------
00025       
00026       inline explicit DiffuseBSDF(SurfacePoint &pt, Material *parent = NULL)
00027          : BSDF(pt, parent)
00028       { }
00029       
00030       virtual ~DiffuseBSDF()
00031       { }
00032       
00033       
00034       //@}-----------------------------------------------------------------
00035       ///@name Main usage interface
00036       //@{-----------------------------------------------------------------
00037       
00038       virtual Event sample();
00039       
00040       virtual real_t getPdf(const Event &event);
00041       
00042       virtual SpectralSampleSet getBSDF(const Vector3 &wi, const Vector3 &wo);
00043       
00044       
00045       //@}-----------------------------------------------------------------
00046 };
00047 
00048 #endif // DIFFUSE_BSDF_H_
00049 

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6