SO3Engine
|
#include <SO3UniversalClock.h>
Public Member Functions | |
SUniversalClock () | |
void | SetTimeScale (const float &scale) |
float | GetTimeScale () const |
void | Update (const float &time) |
void | SetJulianDay (const double &value) |
void | SetGregorianDateTime (const int &year, const int &month, const int &day, const int &hour, const int &minute, const double &second) |
void | GetGregorianDateTime (int &year, int &month, int &day, int &hour, int &minute, double &second) |
double | GetJulianDay () const |
double | GetJulianDayDifference () const |
double | GetJulianSecond () const |
double | GetJulianSecondDifference () const |
Static Public Attributes | |
static const double | SECONDS_PER_DAY = 86400.0 |
Number of seconds per day; exactly 60*60*24. | |
The system's time model. This class is responsible of keeping track of current astronomical time and syncronising with ogre time.
It maintains a snapshot point: At mCurrentTime == 0 julian day was mJulianDayBase. At any time the julian day can be calculated from mCurrentTime and mJulianDayBase. This increases precission; mCurrentTime is tracked in seconds while mJulianDayBase uses days. It would be silly to track the current time in days.
Definition at line 45 of file SO3UniversalClock.h.
SO3::SUniversalClock::SUniversalClock | ( | ) |
Constructor.
Definition at line 37 of file SO3UniversalClock.cpp.
void SO3::SUniversalClock::GetGregorianDateTime | ( | int & | year, |
int & | month, | ||
int & | day, | ||
int & | hour, | ||
int & | minute, | ||
double & | second | ||
) |
Definition at line 49 of file SO3UniversalClock.cpp.
double SO3::SUniversalClock::GetJulianDay | ( | ) | const |
Get current julian day.
Definition at line 62 of file SO3UniversalClock.cpp.
double SO3::SUniversalClock::GetJulianDayDifference | ( | ) | const |
Get the difference in julian day between this and the last update. This is most likely very small and unprecise.
Definition at line 69 of file SO3UniversalClock.cpp.
double SO3::SUniversalClock::GetJulianSecond | ( | ) | const |
Get the current julian second (getJulianDay * SECONDS_PER_DAY) This is most likely very very large and unprecise.
Definition at line 75 of file SO3UniversalClock.cpp.
double SO3::SUniversalClock::GetJulianSecondDifference | ( | ) | const |
Get the difference in seconds between this and the last update. This is what you want for per-frame updates.
Definition at line 82 of file SO3UniversalClock.cpp.
Ogre::Real SO3::SUniversalClock::GetTimeScale | ( | ) | const |
Gets the time scale.
Definition at line 93 of file SO3UniversalClock.cpp.
void SO3::SUniversalClock::SetGregorianDateTime | ( | const int & | year, |
const int & | month, | ||
const int & | day, | ||
const int & | hour, | ||
const int & | minute, | ||
const double & | second | ||
) |
Set the current time as a gregorian date. This is here as an easy to use function.
Definition at line 43 of file SO3UniversalClock.cpp.
void SO3::SUniversalClock::SetJulianDay | ( | const double & | value | ) |
Set the current time as a julian day. Set the current time as a julian day, which you build using one of the static getJulianDayFromXXX functions. Defaults to J2000 (noon january 1st)
Definition at line 55 of file SO3UniversalClock.cpp.
void SO3::SUniversalClock::SetTimeScale | ( | const float & | scale | ) |
Sets the time scale.
scale | The new time scale. If negative, time will move backwards; 2.0 means double speed... |
Definition at line 88 of file SO3UniversalClock.cpp.
void SO3::SUniversalClock::Update | ( | const float & | time | ) |
Updates the clock.
time | The time to be added to the clock. It will beaffected by the time scale. |
Definition at line 98 of file SO3UniversalClock.cpp.
|
static |
Number of seconds per day; exactly 60*60*24.
Definition at line 48 of file SO3UniversalClock.h.