00001 #ifndef WOODTEXTURE_H_
00002 #define WOODTEXTURE_H_
00003
00004 #include "Texture3D.h"
00005 #include "PerlinNoise.h"
00006
00007 namespace rcrt
00008 {
00009
00010 class WoodTexture : public rcrt::Texture3D
00011 {
00012 private:
00013 float ringDist, distortion, weight;
00014 Vec3D dir;
00015 Point3D org;
00016 RGBAColor light, dark;
00017 public:
00018 WoodTexture(float ringDist, float distortion, float weight, Point3D org, Vec3D dir, const RGBColor& light, const RGBColor& dark);
00019 virtual ~WoodTexture();
00020
00021 virtual RGBAColor getColor(const Point3D& p) const;
00022 RGBAColor calcColor(const float& x) const;
00023 float getScale(const Point3D& hit, float disturbation, float widthFactor, bool& down, Vec3D& radius) const;
00024 Vec3D getBump(const Point3D& p, const Vec3D& normal) const;
00025 };
00026
00027 }
00028
00029 #endif