00001 #ifndef WOODMATERIAL_H_
00002 #define WOODMATERIAL_H_
00003
00004 #include "Material.h"
00005 #include "../textures/WoodTexture.h"
00006
00007 namespace rcrt
00008 {
00009
00010 class WoodMaterial : public rcrt::Material
00011 {
00012 private:
00013 WoodTexture wood;
00014
00015 public:
00016 WoodMaterial(const Point3D& org, const Vec3D& dir, const RGBColor& light, const RGBColor& light);
00017 virtual ~WoodMaterial();
00018
00019 virtual RGBColor sample(const Vec3D& wOut, const Vec3D& wInc, Intersection& is);
00020 virtual RGBColor sampleDiffuse(const Vec3D& wOut, const Vec3D& wInc, Intersection& is);
00021 virtual RGBColor sampleSpecular(const Vec3D& wOut, const Vec3D& wInc, Intersection& is);
00022 virtual RGBColor getEmitted(const Vec3D& wOut, Intersection& is);
00023 virtual ScatterEvent scatterPhoton(Intersection& is, Photon* photon);
00024
00025 virtual bool hasDiffuse() const;
00026 virtual bool hasSpecular() const;
00027 virtual bool hasTransmissive() const;
00028 virtual bool refracts() const;
00029
00030 Vec3D getShadingNormal(Intersection& is) const;
00031
00032 };
00033
00034 }
00035
00036 #endif