Package gaiasky.util.time
Class GlobalClock
java.lang.Object
gaiasky.util.time.GlobalClock
- All Implemented Interfaces:
IObserver
,ITimeFrameProvider
Implementation of a time frame provider that provides simulation times governed by a warp value, which informs
the speed at which time passes.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiondouble
findNearestWarpSnapValue
(double value, double dir) Finds the nearest value in thetimeWarpVector
array in the given direction.double[]
Generate the time warp vector with the default number of steps.double[]
generateTimeWarpVector
(int steps) Generate the time warp vector.double
getDt()
The frame time difference in seconds.float
Returns the fixed frame rate if the mode is fixed frame rate.double
getHdiff()
Provides the time difference in hoursgetTime()
Gets the current time in UTC.double
Gets the current warp factorboolean
Returns whether the frame rate is set to fixed or notboolean
isTimeOn()
Is the time on?double
nearestPowerOf2
(double n, double dir) Finds the nearest power of two to n, in the given direction.void
Event notification call.void
setTimeWarp
(double tw) void
update
(double dt) Update function
-
Field Details
-
time
The current time of the clock -
fps
public float fpsThe fixed frame rate when not in real time. Set negative to use real time -
warpSteps
public final int warpSteps- See Also:
-
-
Constructor Details
-
GlobalClock
Creates a new GlobalClock- Parameters:
timeWrap
- The time wrap multiplierinstant
- The instant with which to initialise the clock
-
-
Method Details
-
generateTimeWarpVector
public double[] generateTimeWarpVector()Generate the time warp vector with the default number of steps.- Returns:
- The vector
-
generateTimeWarpVector
public double[] generateTimeWarpVector(int steps) Generate the time warp vector.- Parameters:
steps
- The number of steps per side (positive and negative)- Returns:
- The vector
-
update
public void update(double dt) Update function- Specified by:
update
in interfaceITimeFrameProvider
- Parameters:
dt
- Delta time in seconds
-
getTime
Description copied from interface:ITimeFrameProvider
Gets the current time in UTC.- Specified by:
getTime
in interfaceITimeFrameProvider
- Returns:
- The time as an instant, in UTC.
-
notify
Description copied from interface:IObserver
Event notification call. -
findNearestWarpSnapValue
public double findNearestWarpSnapValue(double value, double dir) Finds the nearest value in thetimeWarpVector
array in the given direction.- Parameters:
value
- The value to use.dir
- The direction, either 1 or -1.- Returns:
- The nearest snap value in the given direction.
-
nearestPowerOf2
public double nearestPowerOf2(double n, double dir) Finds the nearest power of two to n, in the given direction.- Parameters:
n
- The number.dir
- Direction. Either 1.0 or -1.0.- Returns:
- The nearest power of two to n.
-
setTimeWarp
public void setTimeWarp(double tw) -
getHdiff
public double getHdiff()Provides the time difference in hours- Specified by:
getHdiff
in interfaceITimeFrameProvider
- Returns:
- The simulation time difference in hours.
-
getDt
public double getDt()Description copied from interface:ITimeFrameProvider
The frame time difference in seconds.- Specified by:
getDt
in interfaceITimeFrameProvider
- Returns:
- The frame time difference in seconds.
-
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
-