You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
899 B
C++
40 lines
899 B
C++
#ifndef OPENMW_MWRENDER_FOGMANAGER_H
|
|
#define OPENMW_MWRENDER_FOGMANAGER_H
|
|
|
|
#include <osg/Vec4f>
|
|
|
|
namespace ESM
|
|
{
|
|
struct Cell;
|
|
}
|
|
|
|
namespace MWRender
|
|
{
|
|
class FogManager
|
|
{
|
|
public:
|
|
FogManager();
|
|
|
|
void configure(float viewDistance, const ESM::Cell *cell);
|
|
void configure(float viewDistance, float fogDepth, float underwaterFog, float dlFactor, float dlOffset, const osg::Vec4f &color);
|
|
|
|
osg::Vec4f getFogColor(bool isUnderwater) const;
|
|
float getFogStart(bool isUnderwater) const;
|
|
float getFogEnd(bool isUnderwater) const;
|
|
|
|
private:
|
|
float mLandFogStart;
|
|
float mLandFogEnd;
|
|
float mUnderwaterFogStart;
|
|
float mUnderwaterFogEnd;
|
|
osg::Vec4f mFogColor;
|
|
bool mDistantFog;
|
|
|
|
osg::Vec4f mUnderwaterColor;
|
|
float mUnderwaterWeight;
|
|
float mUnderwaterIndoorFog;
|
|
};
|
|
}
|
|
|
|
#endif
|