00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef MOON_H
00022 #define MOON_H
00023
00024 #include "CaelumPrerequisites.h"
00025 #include "Sun.h"
00026
00027 namespace caelum {
00028
00033 class CAELUM_EXPORT Moon : public BaseSkyLight {
00034 public:
00036 static const Ogre::String MOON_MATERIAL_NAME;
00037
00039 static const Ogre::String MOON_BACKROUND_MATERIAL_NAME;
00040
00041 private:
00043 Ogre::BillboardSet* mMoonBB;
00044
00046 Ogre::MaterialPtr mMoonMaterial;
00047
00049 Ogre::BillboardSet* mBackBB;
00050
00052 Ogre::MaterialPtr mBackMaterial;
00053
00055 Ogre::Degree mAngularSize;
00056
00057 Ogre::GpuProgramParametersSharedPtr getFpParams();
00058
00059 public:
00062 Moon (
00063 Ogre::SceneManager *sceneMgr,
00064 Ogre::SceneNode *caelumRootNode,
00065 const Ogre::String& moonTextureName = "moon_disc.dds",
00066 Ogre::Degree angularSize = Ogre::Degree(3.77f));
00067
00068 virtual ~Moon ();
00069
00073 void setMoonTexture (const Ogre::String &textureName);
00074
00078 void setMoonTextureAngularSize(const Ogre::Degree& moonTextureAngularSize);
00079
00083 void setBodyColour (const Ogre::ColourValue &colour);
00084
00086 void setPhase (Ogre::Real phase);
00087
00088 public:
00090 virtual void notifyCameraChanged (Ogre::Camera *cam);
00091 };
00092
00093 }
00094
00095 #endif //MOON_H