Class GlobalClock

java.lang.Object
gaiasky.util.time.GlobalClock
All Implemented Interfaces:
IObserver, ITimeFrameProvider

public class GlobalClock extends 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 Details

    • time

      public Instant time
      The current time of the clock
    • fps

      public float fps
      The fixed frame rate when not in real time. Set negative to use real time
  • Constructor Details

    • GlobalClock

      public GlobalClock(double timeWrap, Instant instant)
      Creates a new GlobalClock
      Parameters:
      timeWrap - The time wrap multiplier
      instant - The instant with which to initialise the clock
  • Method Details

    • update

      public void update(double dt)
      Update function
      Specified by:
      update in interface ITimeFrameProvider
      Parameters:
      dt - Delta time in seconds
    • getTime

      public Instant getTime()
      Description copied from interface: ITimeFrameProvider
      Gets the current time
      Specified by:
      getTime in interface ITimeFrameProvider
      Returns:
      The time as an instant
    • notify

      public void notify(Event event, Object source, Object... data)
      Description copied from interface: IObserver
      Event notification call.
      Specified by:
      notify in interface IObserver
      Parameters:
      event - The event type.
      source - The source object, if any.
      data - The data associated with this event.
    • setTimeWarp

      public void setTimeWarp(double tw)
    • getHdiff

      public double getHdiff()
      Provides the time difference in hours
      Specified by:
      getHdiff in interface ITimeFrameProvider
      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 interface ITimeFrameProvider
      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 interface ITimeFrameProvider
      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 interface ITimeFrameProvider
      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 interface ITimeFrameProvider
      Returns:
      The fixed rate
    • isTimeOn

      public boolean isTimeOn()
      Description copied from interface: ITimeFrameProvider
      Is the time on?
      Specified by:
      isTimeOn in interface ITimeFrameProvider
      Returns:
      True if time is on