00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SKYDOME_H
00022 #define SKYDOME_H
00023
00024 #include "CaelumPrerequisites.h"
00025 #include "CameraBoundElement.h"
00026
00027 namespace caelum {
00028
00032 class CAELUM_EXPORT SkyDome : public CameraBoundElement {
00033
00034 private:
00037 Ogre::SceneNode *mNode;
00038
00041 static const Ogre::String SPHERIC_DOME_NAME;
00042
00045 static const Ogre::String SKY_DOME_MATERIAL_NAME;
00046
00048 Ogre::MaterialPtr mMaterial;
00049
00051 bool mShadersEnabled;
00052
00054 bool mHazeEnabled;
00055
00056
00057 public:
00062 SkyDome (Ogre::SceneManager *sceneMgr, Ogre::SceneNode *caelumRootNode);
00063
00066 virtual ~SkyDome ();
00067
00071 void setSunDirection (Ogre::Vector3 dir);
00072
00074 void setHazeColour (Ogre::ColourValue hazeColour);
00075
00079 void setLightAbsorption (float absorption) const;
00080
00084 void setLightScattering (float scattering) const;
00085
00089 void setAtmosphereHeight (float height) const;
00090
00092 void setSkyGradientsImage (const Ogre::String& gradients);
00093
00095 void setAtmosphereDepthImage (const Ogre::String& gradients);
00096
00098 bool getHazeEnabled () const;
00099
00103 void setHazeEnabled (bool value);
00104
00105 public:
00107 virtual void notifyCameraChanged (Ogre::Camera *cam);
00108
00109 protected:
00111 virtual void setFarRadius (Ogre::Real radius);
00112 };
00113
00114 }
00115
00116 #endif //SKYDOME_H