|
Caelum
0.6.4
|
The system's time model. More...
#include <UniversalClock.h>
Public Member Functions | |
| UniversalClock () | |
| Constructor. | |
| void | setTimeScale (const Ogre::Real scale) |
| Sets the time scale. More... | |
| Ogre::Real | getTimeScale () const |
| Gets the time scale. More... | |
| void | update (const Ogre::Real time) |
| Updates the clock. More... | |
| void | setJulianDay (LongReal value) |
| Set the current time as a julian day. More... | |
| void | setGregorianDateTime (int year, int month, int day, int hour, int minute, double second) |
| Set the current time as a gregorian date. More... | |
| LongReal | getJulianDay () const |
| Get current julian day. | |
| LongReal | getJulianDayDifference () const |
| Get the difference in julian day between this and the last update. More... | |
| LongReal | getJulianSecond () const |
| Get the current julian second (getJulianDay * SECONDS_PER_DAY) This is most likely very very large and unprecise. | |
| LongReal | getJulianSecondDifference () const |
| Get the difference in seconds between this and the last update. More... | |
Static Public Attributes | |
| static const LongReal | SECONDS_PER_DAY |
| 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.
| void Caelum::UniversalClock::setTimeScale | ( | const Ogre::Real | scale | ) |
Sets the time scale.
| scale | The new time scale. If negative, time will move backwards; 2.0 means double speed... |
| Ogre::Real Caelum::UniversalClock::getTimeScale | ( | ) | const |
Gets the time scale.
| void Caelum::UniversalClock::update | ( | const Ogre::Real | time | ) |
Updates the clock.
| time | The time to be added to the clock. It will beaffected by the time scale. |
| void Caelum::UniversalClock::setJulianDay | ( | LongReal | 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)
| void Caelum::UniversalClock::setGregorianDateTime | ( | int | year, |
| int | month, | ||
| int | day, | ||
| int | hour, | ||
| int | minute, | ||
| double | second | ||
| ) |
Set the current time as a gregorian date.
This is here as an easy to use function.
| LongReal Caelum::UniversalClock::getJulianDayDifference | ( | ) | const |
Get the difference in julian day between this and the last update.
This is most likely very small and unprecise.
| LongReal Caelum::UniversalClock::getJulianSecondDifference | ( | ) | const |
Get the difference in seconds between this and the last update.
This is what you want for per-frame updates.