// // texture_cloud.h // // Procedural cloud texture. // // Copyright (C) J. Belson 2003.09.27 // // $Id: texture_cloud.h,v 1.1 2003/10/11 18:11:00 jon Exp $ // #ifndef _TEXTURE_CLOUD_H_ #define _TEXTURE_CLOUD_H_ #include "texture.h" #define USE_OLD_PERLIN //#undef USE_OLD_PERLIN /** * Settings structure for cloud texture. */ struct textset_cloud : public textset_noise { fcolour zenith_colour; fcolour horizon_colour; float cloud_cover; static void load_settings(textset_cloud& ts); }; /** * Procedural cloud texture. */ class texture_cloud : public texture { private: #ifdef USE_OLD_PERLIN perlin* noise; #else perlin2* noise; #endif float persistence; float presence; float cloud_cover; float scale; fcolour zenith_colour; fcolour horizon_colour; settings* my_settings; enum { SKYDOME_OFFSET = 40, SKYDOME_SCALE = 70 }; public: texture_cloud(const textset_cloud& ts); virtual ~texture_cloud(); virtual fcolour colour(float s, float t, float u = 0, vector3d* normal = 0); }; #endif // _TEXTURE_CLOUD_H_