1 #ifndef OPENMW_MWRENDER_FOGMANAGER_H 2 #define OPENMW_MWRENDER_FOGMANAGER_H 3 4 #include <osg/Vec4f> 5 6 namespace ESM 7 { 8 struct Cell; 9 } 10 11 namespace MWRender 12 { 13 class FogManager 14 { 15 public: 16 FogManager(); 17 18 void configure(float viewDistance, const ESM::Cell *cell); 19 void configure(float viewDistance, float fogDepth, float underwaterFog, float dlFactor, float dlOffset, const osg::Vec4f &color); 20 21 osg::Vec4f getFogColor(bool isUnderwater) const; 22 float getFogStart(bool isUnderwater) const; 23 float getFogEnd(bool isUnderwater) const; 24 25 private: 26 float mLandFogStart; 27 float mLandFogEnd; 28 float mUnderwaterFogStart; 29 float mUnderwaterFogEnd; 30 osg::Vec4f mFogColor; 31 bool mDistantFog; 32 33 osg::Vec4f mUnderwaterColor; 34 float mUnderwaterWeight; 35 float mUnderwaterIndoorFog; 36 }; 37 } 38 39 #endif 40