00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SOLARSYSTEMMODEL_H
00022 #define SOLARSYSTEMMODEL_H
00023
00024 #include "CaelumPrerequisites.h"
00025
00026 namespace caelum
00027 {
00031 class CAELUM_EXPORT SolarSystemModel
00032 {
00033 private:
00034 Ogre::Degree mObserverLatitude;
00035 Ogre::Degree mObserverLongitude;
00036
00037 static const Ogre::Vector3 makeDirection (
00038 Ogre::Degree azimuth, Ogre::Degree altitude);
00039
00040 public:
00043 SolarSystemModel (
00044 Ogre::Degree longitude = Ogre::Degree (0),
00045 Ogre::Degree latitude = Ogre::Degree (45));
00046
00048 inline const Ogre::Degree getObserverLongitude () const { return mObserverLongitude; }
00049
00051 inline void setObserverLongitude (Ogre::Degree value) { mObserverLongitude = value; }
00052
00054 inline const Ogre::Degree getObserverLatitude () const { return mObserverLatitude; }
00055
00057 inline void setObserverLatitude (Ogre::Degree value) { mObserverLatitude = value; }
00058
00063 const Ogre::Vector3 getSunDirection (LongReal jday);
00064
00068 const Ogre::Vector3 getMoonDirection (LongReal jday);
00069
00076 const Ogre::Real getMoonPhase (LongReal jday);
00077 };
00078 }
00079
00080 #endif // SOLARSYSTEMMODEL_H