Package gaiasky.util.time
Class GlobalClock
java.lang.Object
gaiasky.util.time.GlobalClock
- All Implemented Interfaces:
IObserver
,ITimeFrameProvider
public class GlobalClock extends java.lang.Object implements IObserver, ITimeFrameProvider
Keeps pace of the simulation time vs real time and holds the global clock. It
uses a time warp factor which is a multiplier to real time.
-
Field Summary
-
Constructor Summary
Constructors Constructor Description GlobalClock(double timeWrap, java.time.Instant instant)
Creates a new GlobalClock -
Method Summary
Modifier and Type Method Description double
getDt()
Provides the time difference in hoursfloat
getFixedRate()
Returns the fixed frame rate if the mode is fixed frame rate.java.time.Instant
getTime()
Gets the current timedouble
getWarpFactor()
Gets the current warp factorboolean
isFixedRateMode()
Returns whether the frame rate is set to fixed or notboolean
isTimeOn()
Is the time on?void
notify(Events event, java.lang.Object... data)
void
setTimeWarp(double tw)
void
update(double dt)
Update functionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Field Details
-
time
public java.time.Instant timeThe current time of the clock -
hdiff
public double hdiffThe hour difference from the last frame -
timeWarp
public double timeWarpRepresents the time wrap multiplier. Scales the real time -
fps
public float fpsThe fixed frame rate when not in real time. Set negative to use real time
-
-
Constructor Details
-
GlobalClock
public GlobalClock(double timeWrap, java.time.Instant instant)Creates a new GlobalClock- Parameters:
timeWrap
- The time wrap multiplierinstant
- The instant with which to initialise the clock
-
-
Method Details
-
update
public void update(double dt)Update function- Specified by:
update
in interfaceITimeFrameProvider
- Parameters:
dt
- Delta time in seconds
-
getTime
public java.time.Instant getTime()Description copied from interface:ITimeFrameProvider
Gets the current time- Specified by:
getTime
in interfaceITimeFrameProvider
- Returns:
- The time as an instant
-
notify
-
setTimeWarp
public void setTimeWarp(double tw) -
getDt
public double getDt()Provides the time difference in hours- Specified by:
getDt
in interfaceITimeFrameProvider
- Returns:
- The time difference
-
getWarpFactor
public double getWarpFactor()Description copied from interface:ITimeFrameProvider
Gets the current warp factor- Specified by:
getWarpFactor
in interfaceITimeFrameProvider
- Returns:
- The warp factor
-
isFixedRateMode
public boolean isFixedRateMode()Description copied from interface:ITimeFrameProvider
Returns whether the frame rate is set to fixed or not- Specified by:
isFixedRateMode
in interfaceITimeFrameProvider
- Returns:
- Whether fix rate mode is on
-
getFixedRate
public float getFixedRate()Description copied from interface:ITimeFrameProvider
Returns the fixed frame rate if the mode is fixed frame rate. Returns -1 otherwise- Specified by:
getFixedRate
in interfaceITimeFrameProvider
- Returns:
- The fixed rate
-
isTimeOn
public boolean isTimeOn()Description copied from interface:ITimeFrameProvider
Is the time on?- Specified by:
isTimeOn
in interfaceITimeFrameProvider
- Returns:
- True if time is on
-