src/rcrt/bxdf/BXDF.h

Go to the documentation of this file.
00001 #ifndef BXDF_H_
00002 #define BXDF_H_
00003 
00004 #include "BXDFType.h"
00005 #include "../RGBColor.h"
00006 #include "../math/Vec3D.h"
00007 #include "../Intersection.h"
00008 
00009 namespace rcrt
00010 {
00011 
00017 class BXDF
00018 {
00019 protected:
00020         RGBColor ks; //specular coefficient
00021         RGBColor kd; //diffuse coefficient
00022         RGBColor kt; //transmitted coefficient
00023         
00024 public:
00025         BXDF(const RGBColor& s, const RGBColor& d, const RGBColor& t, const BXDFType& bt);
00026         virtual ~BXDF();
00027         
00028         virtual RGBColor eval(const Vec3D& wOut, const Vec3D& wInc, const Vec3D& normal) const =0;              
00029         virtual RGBColor evalDiffuse(const Vec3D& wOut, const Vec3D& wInc, const Vec3D& normal) const =0;
00030         virtual RGBColor evalSpecular(const Vec3D& wOut, const Vec3D& wInc, const Vec3D& normal) const =0;
00031         
00032         virtual bool specular() const =0;
00033         virtual bool glossy() const =0;
00034         virtual bool diffuse() const =0;
00035         virtual bool fresnel() const =0;
00036         
00037         const RGBColor& getKs() const;
00038         const RGBColor& getKd() const;
00039         const RGBColor& getKt() const;
00040         const BXDFType type;
00041 };
00042 
00043 }
00044 
00045 #endif /*BXDF_H_*/

Generated on Thu Jan 31 19:26:19 2008 for RenderingCompetitionRayTracer by  doxygen 1.5.3