src/rcrt/materials/WallMaterial.h

Go to the documentation of this file.
00001 #ifndef WALLMATERIAL_H_
00002 #define WALLMATERIAL_H_
00003 
00004 #include "Material.h"
00005 #include "../textures/PerlinNoise.h"
00006 #include "../bxdf/Lambertian.h"
00007 #include "BSDFMaterial.h"
00008 
00009 namespace rcrt
00010 {
00011 
00012 class WallMaterial : public rcrt::Material
00013 {
00014 private:
00015         BSDFMaterial mat;
00016         float density;
00017 public:
00018         WallMaterial(BSDF b, const float& dens);
00019         virtual ~WallMaterial();
00020         
00021         virtual RGBColor sample(const Vec3D& wOut, const Vec3D& wInc, Intersection& is);
00022         virtual RGBColor sampleDiffuse(const Vec3D& wOut, const Vec3D& wInc, Intersection& is);
00023         virtual RGBColor sampleSpecular(const Vec3D& wOut, const Vec3D& wInc, Intersection& is);
00024         virtual RGBColor getEmitted(const Vec3D& wOut, Intersection& is);
00025         virtual ScatterEvent scatterPhoton(Intersection& is, Photon* photon);
00026         
00027         virtual bool refracts() const;
00028         virtual bool hasDiffuse() const;
00029         virtual bool hasSpecular() const;
00030         virtual bool hasTransmissive() const;
00031         
00032         void distortNormal(Intersection& is) const;
00033         
00034         Vec3D calcDistNormal(Intersection& is) const;
00035         
00036         Vec3D getShadingNormal(Intersection& is) const;
00037 };
00038 
00039 }
00040 
00041 #endif /*WALLMATERIAL_H_*/

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