00001 #ifndef WATERTEXTURE_H_ 00002 #define WATERTEXTURE_H_ 00003 00004 #include "Texture2D.h" 00005 #include "PerlinNoise.h" 00006 00007 namespace rcrt 00008 { 00009 00010 class WaterTexture : public rcrt::Texture2D 00011 { 00012 private: 00013 float width, intensity; 00014 public: 00015 WaterTexture(); 00016 virtual ~WaterTexture(); 00017 00018 virtual RGBAColor getColor(const Point2D& p) const; 00019 virtual Vec3D getBump(const Point2D& p, const float& scale,const Matrix4D& onb) const; 00020 float getScale(const Point3D& hit, float disturbation, float widthFactor, bool& down, Vec3D& radius) const; 00021 void setWidth(const float& w); 00022 void setIntensity(const float& i); 00023 }; 00024 00025 } 00026 00027 #endif /*WATERTEXTURE_H_*/