00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SKYCOLOURMODEL_H
00022 #define SKYCOLOURMODEL_H
00023
00024 #include "CaelumPrerequisites.h"
00025
00026 namespace caelum {
00027
00033 class CAELUM_EXPORT SkyColourModel {
00034
00035 private:
00038 Ogre::Image *mSkyGradientsImage;
00039
00042 Ogre::Image *mSunColoursImage;
00043
00046 float mFogDensityMultiplier;
00047
00048
00049 public:
00052 SkyColourModel (
00053 const Ogre::String &skyGradients = "EarthClearSky2.png",
00054 const Ogre::String &sunColours = "SunGradient.png"
00055 );
00056
00059 virtual ~SkyColourModel ();
00060
00066 Ogre::ColourValue getFogColour (float time, const Ogre::Vector3 &sunDir);
00067
00073 float getFogDensity (float time, const Ogre::Vector3 &sunDir);
00074
00079 Ogre::ColourValue getSunSphereColour (float time, const Ogre::Vector3 &sunDir);
00080
00085 Ogre::ColourValue getSunLightColour (float time, const Ogre::Vector3 &sunDir);
00086
00088 Ogre::ColourValue getMoonBodyColour (const Ogre::Vector3 &moonDir);
00089
00091 Ogre::ColourValue getMoonLightColour (const Ogre::Vector3 &moonDir);
00092
00095 void setSkyGradientsImage (const Ogre::String &filename);
00096
00100 void setSunColoursImage (const Ogre::String &filename);
00101 };
00102
00103 }
00104
00105 #endif //SKYCOLOURMODEL_H