/** * @file volfog_effect.h */ #ifndef _VOLFOG_EFFECT #define _VOLFOG_EFFECT #include "vector.h" #include "weather_effect.h" class VolFogEffect : public WeatherEffect { public: VolFogEffect(const TiXmlElement* root = NULL); virtual ~VolFogEffect(); virtual void loadParams(const TiXmlElement* root); virtual bool init(); virtual bool activate(); virtual bool deactivate(); inline void setVolFogMode(const std::string& mode) { this->volfogMode = this->stringToVolFogMode(mode); } inline void setVolFogDensity(float density) { this->volfogDensity = density; } inline void setVolFogRange(float start, float end) { this->volfogStart = start; this->volfogEnd = end; } inline void setVolFogColor(float r, float g, float b) { this->colorVector = Vector(r, g, b); } private: GLint stringToVolFogMode(const std::string& mode); private: GLint volfogMode; GLfloat volfogDensity; GLfloat volfogStart; GLfloat fogEnd; Vector colorVector; }; #endif /* _VOLFOG_EFFECT */