00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef UNIVERSALCLOCK_H
00022 #define UNIVERSALCLOCK_H
00023
00024 #include "CaelumPrerequisites.h"
00025
00026 namespace Caelum {
00027
00037 class CAELUM_EXPORT UniversalClock
00038 {
00039 private:
00041 LongReal mJulianDayBase;
00042
00044 LongReal mCurrentTime;
00045
00047 LongReal mLastUpdateTime;
00048
00050 Ogre::Real mTimeScale;
00051
00052 public:
00055 static const LongReal SECONDS_PER_DAY;
00056
00059 UniversalClock ();
00060
00064 void setTimeScale (const Ogre::Real scale);
00065
00069 Ogre::Real getTimeScale () const;
00070
00074 void update (const Ogre::Real time);
00075
00081 void setJulianDay(LongReal value);
00082
00086 void setGregorianDateTime(
00087 int year, int month, int day,
00088 int hour, int minute, double second);
00089
00092 LongReal getJulianDay() const;
00093
00097 LongReal getJulianDayDifference() const;
00098
00102 LongReal getJulianSecond() const;
00103
00107 LongReal getJulianSecondDifference() const;
00108 };
00109 }
00110
00111 #endif //UNIVERSALCLOCK_H